开发者

php upload image with ftp problem

I am using the code below to upload an image through ftp

$sFile=$ftp_dir."/".$image_name;

$image=$database_row["image"];//image is store in database

$fh = tmpfile();
$fwrite($fh, $image);

$uploadFile = ftp_fput($conn_id, $sFile, $fh, FTP_ASCII); 

fclose($fh);

The ftp is creating the file and has a size BUT the file i get is not an image.When try to open on image viewer i get error.

Before switch to ftp i had this code

$image=$database_row["image"];//image is开发者_如何学C store in database
   $file = fopen( "images/".$image_name, "w" );
   fwrite( $file, $image);
   fclose( $file );

and was working fine, but now i have to use ftp.

What am i missing.


You need to fseek to the beginning of the file after writing content to it and you need to use binary upload mode:

$sFile=$ftp_dir."/".$image_name;
$image=$database_row["image"];//image is store in database
$fwrite($fh, $image);
fseek($fh, 0);
$uploadFile = ftp_fput($conn_id, $sFile, $fh, FTP_BINARY); 
fclose($fh);


Try using FTP_BINARY instead of FTP_ASCII. If all else fails, open the resulting file with a hex editor.


you are telling ftp to read the image as ascii (text) change it ot FTP_BINARY.


//turn passive mode on then it will work fine

  ftp_pasv($conn_id, true);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜