将文件上传到远程FTP服务器错误

问题描述 投票:1回答:1

最近,我一直在处理上传表单。这个想法是用户可以将其文件上传到远程FTP服务器。但是,它不能按预期方式工作。

甚至在我开始上载文件之前,我收到以下错误:“无法将上载的文件移动到工作目录”。同样,我尚未开始上传文件。

这是我的PHP代码:

<?php


//FTP variabelen met de values

$host = "radioprogrammabank.nl";

$user = "***";  

$pass = "***";

//location I want to send the uploaded file to (it is remote)
$destDir = "/domains/radioprogrammabank.nl/public_html/wp/wp-content/uploads";


$dehost = $_POST[$host];

$deuser = $_POST[$user];

$depass = $_POST[$pass];

$dedestDir = $_POST[$destDir];


$workDir = "\Users\stagiaire01\Uploads"; // definieer het lokale systeem

// get temporary file name for the uploaded file

$tmpName = basename($_FILES['file']['tmp_name']);

// copy uploaded file into the current directory

move_uploaded_file($_FILES['file']['tmp_name'], $workDir."/".$tmpName) or die('Cannot move uploaded file to working directory');

// maak connectie, als het niet werkt. Die en geef een melding

$conn = ftp_connect($host) or die ("Cannot initiate connection to host");

// send access parameters

ftp_login($conn, $user, $pass) or die("Cannot login");

// Voer de file upload uit

$upload = ftp_put($conn, $destDir."/".$_FILES['file']['name'], $workDir."/".$tmpName, FTP_BINARY);

// check upload status

// display message

if (!$upload) {

    echo "Upload mislukt";

} else {

    echo "Upload geslaagd";

}

// sluit de FTP connectie

ftp_close($conn);

// verwijder de lokale kopie van het bestand

unlink($workDir."/".$tmpName) or die("Cannot delete uploaded file from working directory -- manual deletion recommended");

?>

我的HTML代码:


<html>
<body>
<h2>U kunt hier uw album uploaden</h2>

<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000" />

File <br />
<input type="file" name="file" /><p />

<input type="submit" name="submit" value="Upload Album" />
</form>

</body>
[xyz-ips snippet="verbindftp"]
</html>

您可能想知道为什么我的HTML中有一个简码。该代码是用Wordpress编写的。我使用一个可以编写PHP的插件。编写此短代码时,代码有效。

我还尝试过执行$ _FILES的var_dump,它告诉我以下内容:

"array(0) { } Upload misluktCannot delete uploaded file from working directory -- manual deletion recommended"

我不知道为什么在执行var_dump时会收到此消息。我已经在上面的值中设置了主机,用户名,密码和方向。出于安全原因,未显示密码和用户名。

我在StackOverflow上找不到此问题的任何答案。但是,我希望我能为您提供足够的信息以帮助我。我希望能够将文件上传到远程FTP服务器。

问候,

Parsa_237

php wordpress ftp
1个回答
0
投票

[您需要检查是否正在上载,否则,即使用户尚未开始上载,它也会在页面加载时尝试连接到FTP服务器。

例如

if ( empty( $_FILES['file'] ) ) {
    return;
}

作为旁注,我注意到您正在使用PHP Snippets插件,该插件以及其他类似的插件非常危险。相反,请在PHP文件中使用add_shortcode将PHP片段嵌入页面内。

这就是您遇到此问题的原因,原始教程假定您将PHP代码放入一个PHP文件中,因此它仅在提交表单后才运行。但是此插件不是这种情况

© www.soinside.com 2019 - 2024. All rights reserved.