如何在php中将文件从本地计算机发送到我的服务器?

时间:2017-01-12 05:36:17

标签: php html image file-upload ftp-client

我想将一个图像文件(例如" C:\ Users \ Public \ Pictures \ 1.png")上传到我的ftp服务器(ftp://srict.96.lt)。

我有以下HTML代码,允许用户从本地计算机中选择文件。

<html>
<body>

<form action="imgup.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

现在在imgup.php中我尝试了以下代码,但它说&#34; move_uploaded_file(/Hydrangeas.jpg):无法打开流:/home/u704250527/public_html/imgup.php中的权限被拒绝在第21行&#34;

<?php
        $target_dir = "public_html/";    /* I also tried for "/"  "root/public_html/" */
        $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
        $uploadOk = 1;
        $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
        if ($uploadOk == 0) 
         {
            echo "Sorry, your file was not uploaded.";
        } 
        else 
        {
            if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file))
            {
                echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
            }
           else 
            {
                echo "Sorry, there was an error uploading your file.";
            }
        }
        ?>

我需要在用户点击上传按钮时上传文件。  我也试过在php中使用ftp这也给了我同样的错误,无法打开流。

<?php
// connect and login to FTP server
$ftp_server = "ftp.srict.96.lt";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$ftp_username="user";
$ftp_userpass="pass";
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);

$file = "D:\Picture1.png";
$fp = fopen($file,"r");
if (ftp_fput($ftp_conn, "1.png", $fp, FTP_ASCII))
  {
  echo "Successfully uploaded $file.";
  }
else
  {
  echo "Error uploading $file.";
  }
ftp_close($ftp_conn); 
?>

1 个答案:

答案 0 :(得分:1)

我终于找到了什么问题。上传的文件必须选中,并且应使用$ _FILES [&#39; filetoupload&#39;] [&#39; tmp_name&#39;];

添加

这是下面的完整代码。

代表HTML:

<!DOCTYPE html>
<html>
<body>

<form action="imgup.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

用户点击上传后,将执行以下php脚本,并且会发生魔术。

<?php
// connect and login to FTP server
$ftp_server = "ftp.my.server.com";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$ftp_username="my_username";
$ftp_userpass="my_password";
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);


var_dump($_FILES);
if (ftp_put($ftp_conn, "1.png",$_FILES['fileToUpload']['tmp_name'], FTP_BINARY))
  {
  echo "Successfully uploaded $file.";
  }
else
  {
  echo "Error uploading $file.";
  }

// close connection
ftp_close($ftp_conn); 
?>

这是重要的一行这就是说使用FTP_BINARY模式上传文件,这种模式最常用于图像和文档文件。另请注意&#34; tmp_name&#34;上传。

<强> ftp_put($ftp_conn, "1.png",$_FILES['fileToUpload']['tmp_name'], FTP_BINARY)