我想将一个图像文件(例如" 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);
?>
答案 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)
强>