Sftp 上传文件错误 0 Byte
Sftp uploading file's error 0 Byte
<?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"].
这不是 return 错误,但它只上传了 0 字节大小的文件名,写入的字节数也是 0,我正在使用 CentOs。
感谢您的帮助。
看了一会儿之后很明显...PHP无法读取您要求它读取的文件。我很惊讶日志中没有关于此的错误,第二个 fopen
将失败。
那是因为你试图从错误的文件名中读取
"/var/www/html/mysite.com/folder/" . $_FILES["fileToUpload"]["name"]
这不是您上传时存储文件的位置。假设表单中的字段名为fileToUpload
,用户上传的文件将存储在这里:
$_FILES['userfile']['tmp_name']
那是你想要在你的代码中加入这一行:
$srcFile = fopen($_FILES['userfile']['tmp_name'], 'r');
<?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"].
这不是 return 错误,但它只上传了 0 字节大小的文件名,写入的字节数也是 0,我正在使用 CentOs。
感谢您的帮助。
看了一会儿之后很明显...PHP无法读取您要求它读取的文件。我很惊讶日志中没有关于此的错误,第二个 fopen
将失败。
那是因为你试图从错误的文件名中读取
"/var/www/html/mysite.com/folder/" . $_FILES["fileToUpload"]["name"]
这不是您上传时存储文件的位置。假设表单中的字段名为fileToUpload
,用户上传的文件将存储在这里:
$_FILES['userfile']['tmp_name']
那是你想要在你的代码中加入这一行:
$srcFile = fopen($_FILES['userfile']['tmp_name'], 'r');