File Upload and ftp transfer problem
| From: | Hugh Danaher | Date: | Thu, 27 Mar 2003 19:16:20 +0000 |
| Subject: | File Upload and ftp transfer problem | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-141291@lists.php.net to get a copy of this message | ||
I'm trying to get the following script to ftp transfer an uploaded image file so as to get
around a file permission problem. The upload portion of this works without problem, the ftp portion
doesn't spit out any errors either, but the file transfered is just the name of the uploaded
temp file and not the file itself.
If I do a filesize() on $file_stream, I get 44K (the size of the image uploaded), I then transfer
this var to the ftp function but what gets ftp and saved as a file is only 14 bytes. The saved file
has "/tmp/phpDcJSOq" as its entire contents.
The upload scrip is below.
Thanks for any help to resolve this problem.
Hugh
<?php
if (isset($asset_n))
{
if (isset($asset_n) and !isset($upload))
{
print "<h3>Input your digital photo of the specimen.</h3>";
print "<form enctype=\"multipart/form-data\" action=$PHP_SELF
method=post>";
print "<input type=hidden name=MAX_FILE_SIZE value=300000>";
print "Send this tree picture: <br><input name=userfile type=file>";
print "<input type=hidden name=upload value=1 >";
print "<input type=hidden name=asset_n value=$asset_n>";
print "<input type=submit value=\" Upload File \">";
print "</form>";
}
if ($upload==1)
{
$photo2="L".(100*$asset_n).".jpg";
// move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],
"./directory/".$photo2.""); // doesn't work because of file permissions.
$file_stream=$HTTP_POST_FILES['userfile']['tmp_name'];
if ($upload==1)
{
call_user_func('ftp_transfer',$photo2, $file_stream);
header("location: update.php?asset_n=$asset_n&edit=1");
}
}
// functions
// set up basic ftp connection
function ftp_transfer($photo2,$file_stream)
{
$ftp_server=" ";
$ftp_user_name=" ";
$ftp_user_pass=" ";
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// check connection
if ((!$conn_id) || (!$login_result))
{
print "FTP connection has failed!<br>";
print "Attempted to connect to $ftp_server <br>";
exit;
}
// upload the file
$fp = tmpfile();
fwrite($fp, $file_stream);
rewind($fp);
$destination_file="./directory/".$photo2;
$upload = ftp_fput($conn_id, $destination_file, $fp, FTP_BINARY);
// check upload status
if (!$upload)
{
print "FTP upload has failed!<br>";
}
// close the FTP stream
ftp_quit($conn_id);
}
php?>