php上传图片与ftp问题

时间:2010-04-29 09:32:36

标签: php upload ftp

我使用下面的代码通过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);

ftp正在创建文件并且有一个大小但是我得到的文件不是图像。当尝试在图像查看器上打开时我会收到错误。

在切换到ftp之前我有这个代码

$image=$database_row["image"];//image is store in database
   $file = fopen( "images/".$image_name, "w" );
   fwrite( $file, $image);
   fclose( $file );

并且工作正常,但现在我必须使用ftp。

我缺少什么。

3 个答案:

答案 0 :(得分:2)

尝试使用FTP_BINARY而不是FTP_ASCII。如果所有其他方法都失败了,请使用十六进制编辑器打开生成的文件。

答案 1 :(得分:2)

您需要在向其写入内容之后查看文件的开头,并且需要使用二进制上载模式:

$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);

答案 2 :(得分:1)

你告诉ftp将图像读作ascii(文本) 改变它或FTP_BINARY。