繁体   English   中英

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

[英]How to send file from local computer to my server in php?

我想上传一个图像文件(例如 - "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 中,我尝试了以下代码,但它说“move_uploaded_file(/Hydrangeas.jpg):无法打开流:权限被拒绝在 /home/u704250527/public_html/imgup.php 第 21 行”

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

我终于发现了什么问题。 必须选择上传的文件,并使用 $_FILES['filetoupload']['tmp_name'];

这是下面的完整代码。

对于 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 模式上传文件,该模式最适合用于图像和文档文件。 还要注意要上传的“tmp_name”。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM