From: Marcus Boerger Date: Mon, 18 Mar 2002 00:12:47 +0000 (+0000) Subject: -use php_stream_make_seekable X-Git-Tag: php-4.3.0dev-ZendEngine2-Preview1~1294 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c645babd8ab78c74102ab3616badc94cf3a669be;p=php -use php_stream_make_seekable --- diff --git a/ext/exif/exif.c b/ext/exif/exif.c index 5cb796ee6c..b0ecc631cc 100644 --- a/ext/exif/exif.c +++ b/ext/exif/exif.c @@ -2974,24 +2974,30 @@ int exif_read_file(image_info_type *ImageInfo, char *FileName, int read_thumbnai ImageInfo->read_all = read_all; ImageInfo->Thumbnail.filetype = IMAGE_FILETYPE_UNKNOWN; - /* Store file date/time. */ - if (VCWD_STAT(FileName, &st) >= 0) { - ImageInfo->FileDateTime = st.st_mtime; - ImageInfo->FileSize = st.st_size; + #ifdef HAVE_PHP_STREAM + if ( php_stream_is(ImageInfo->infile, PHP_STREAM_IS_STDIO)) { + #endif + if (VCWD_STAT(FileName, &st) >= 0) { + /* Store file date/time. */ + ImageInfo->FileDateTime = st.st_mtime; + ImageInfo->FileSize = st.st_size; + } + #ifdef HAVE_PHP_STREAM } else { - ImageInfo->FileDateTime = 0; - #ifdef HAVE_PHP_STREAM - if ( !php_stream_is(ImageInfo->infile, PHP_STREAM_IS_STDIO)) { - mem_stream = php_memory_stream_create(); -/* mem_stream = php_stream_fopen_tmpfile(); files my be big */ - ImageInfo->FileSize = php_stream_copy_to_stream(ImageInfo->infile, mem_stream, PHP_STREAM_COPY_ALL); - auto_fclose(ImageInfo->infile); - ImageInfo->infile = mem_stream; +/* + mem_stream = php_stream_temp_create(TEMP_STREAM_DEFAULT,20000000); + ImageInfo->FileSize = php_stream_copy_to_stream(ImageInfo->infile, mem_stream, PHP_STREAM_COPY_ALL); + auto_fclose(ImageInfo->infile); +*/ + php_stream_make_seekable( ImageInfo->infile, &mem_stream); + if ( !ImageInfo->FileSize) { + php_stream_seek(mem_stream,0,SEEK_END); + ImageInfo->FileSize = php_stream_tell(mem_stream); + php_stream_seek(mem_stream,0,SEEK_SET); } - #else - ImageInfo->FileSize = 0; - #endif + ImageInfo->infile = mem_stream; } + #endif /* Scan the JPEG headers. */ ret = exif_scan_FILE_header(ImageInfo);