<?php
if(isset($_POST["submit"])) {
$filename = $_FILES["fileToUpload"]["name"];
require_once('/home/Script_Server/login_server_ftp.php');
$resConnection = ssh2_connect($strServer, $strServerPort);
if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)){
//Initialize SFTP subsystem
echo "connected";
$resSFTP = ssh2_sftp($resConnection);
/*la posizione resSFTP è la / assoluta nel server*/
$resFile = fopen("ssh2.sftp://{$resSFTP}/". "var/www/html/mysite.com/folder/" . $filename, 'w');
$srcFile = fopen("/var/www/html/mysite.com/folder/".$filename, 'r');
$writtenBytes = stream_copy_to_stream($srcFile, $resFile);
echo "Byte scritti: " . $writtenBytes;
fclose($resFile);
fclose($srcFile);
}else{
echo "Unable to authenticate on server";
}
} /*Chiusura POST */
?>
下午好,我在这之前用html页面中的表单调用了这个脚本的问题,我用以下文件捕获文件:$ _FILES [“fileToUpload”] [“name”]。
这不会返回错误但是它只上传了0字节大小的文件名,写入的字节数也是0,我使用的是CentOs。
感谢您的帮助。
答案 0 :(得分:1)
看了一会儿之后很明显...... PHP无法读取你要求它阅读的文件。我觉得日志中没有错误,第二个fopen
会失败。
那是因为你试图从错误的文件名中读取
"/var/www/html/mysite.com/folder/" . $_FILES["fileToUpload"]["name"]
上传时,这不是文件存储的位置。假设表单中的字段名为fileToUpload
,则用户上传的文件将存储在此处:
$_FILES['userfile']['tmp_name']
那就是你想在你的代码中使用这一行:
$srcFile = fopen($_FILES['userfile']['tmp_name'], 'r');