所以我试图用xampp在我的localhost设置上制作一个ftp php上传器。 它可以很好地从C:\ xampp \ htdocs \上传文件,但如果我尝试从我的桌面上传文件它将无法正常工作。有没有办法获得"来源"文件,所以我可以从... \ htdocs \以外的其他地方上传,或者我该如何解决这个问题?
文件被上传到我桌面上的ftp文件夹,正如我所说,当你从C:\ xampp \ htdocs中选择一个文件时它可以正常工作。
<?php
if($_POST){
$source = basename($_FILES["source"]["name"]);
$fileType = pathinfo($source, PATHINFO_EXTENSION);
$remote_file = $source;
$ftp_server = '127.0.0.1';
$ftp_user_name = 'xxx';
$ftp_user_pass = 'xxx';
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_put($conn_id, $remote_file, $source, FTP_ASCII)) {
echo "successfully uploaded $source\n";
} else {
echo "There was a problem while uploading $source\n";
}
ftp_close($conn_id);
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" id="source" name="source"></input><br>
<input type="submit" value="Upload file" name="submit" id="submit"></input><br>
</form>
</body>
</html>
答案 0 :(得分:0)
您使用name
。要访问上传的文件,您需要使用tmp_name
。将$source = basename($_FILES["source"]["name"]);
更改为$source = basename($_FILES["source"]["tmp_name"]);