用于将pdf文件发送到服务器的Php脚本
第一次在这里发布。我正在尝试编写一个PHP脚本,它将复制某些pdf文件并将其发送到服务器。我有一个查询,它将从中提取需要发送的PDF的ID号。现在我不知道脚本是否连接不正确,或者脚本是否没有获取任何内容。另外,我在脚本底部做了一个检查测试,以查看PDF是否已成功发送。任何帮助都将不胜感激。 注意:我收到一个错误“注意:未定义的偏移量”行:Zend_Db_Table::getDefaultAdapter()->更新(“传输”,数组(“传输状态”=>0),数组(“id=?”=>id[0])用于将pdf文件发送到服务器的Php脚本,php,Php,第一次在这里发布。我正在尝试编写一个PHP脚本,它将复制某些pdf文件并将其发送到服务器。我有一个查询,它将从中提取需要发送的PDF的ID号。现在我不知道脚本是否连接不正确,或者脚本是否没有获取任何内容。另外,我在脚本底部做了一个检查测试,以查看PDF是否已成功发送。任何帮助都将不胜感激。 注意:我收到一个错误“注意:未定义的偏移量”行:Zend_Db_Table::getDefaultAdapter()->更新(“传输”,数组(“传输状态”=>0),数组(“id=?”=>id[0]) 当然,首
当然,首先要做的是找出脚本是否没有获取任何内容,或者它是否没有正确连接?究竟发生了什么不应该发生的事情,还是不应该发生的事情?您建议存在问题,但不说明问题是什么。并且,您使用
$sftp
打开服务器进行写入,但不在任何地方定义它。略微O/t,但如果我是您,我会在FTP服务器上打开源文件之前检查源文件是否存在。埃塔-哦,我看到你在FTP打开之前做了检查。当然,首先要做的是找出脚本是否没有获取任何内容,或者它是否没有正确连接?究竟发生了什么不应该发生的事情,还是不应该发生的事情?您建议存在问题,但不说明问题是什么。并且,您使用$sftp
打开服务器进行写入,但不在任何地方定义它。略微O/t,但如果我是您,我会在FTP服务器上打开源文件之前检查源文件是否存在。埃塔-哦,我看到你在FTP打开之前做了检查。之后。
public function transfertoAction(){
$time_start = microtime(true);
$errors = array();
$data = Zend_Db_Table::getDefaultAdapter()->fetchAll("
SELECT id
FROM transfers
LIMIT 1
");
foreach ($data as $id) {
$srcBookChapter = "/var/www/sites/CDN/pdfs/$id.pdf";
$dstBookChapter = "/name/wheretopaste";
$ftpUsername = "username";
$ftpUserpass = "userpass";
$ftpServer = "server";
$ftpPort = "22";
$connection = ssh2_connect($ftpServer, $ftpPort);
ssh2_auth_password($connection, $ftpUsername, $ftpUserpass);
try {
if (!file_exists($srcBookChapter)) {
throw new Exception("Could not find file: $srcBookChapter");
}
$sftpStream = fopen("ssh2.sftp://".$sftp.$dstBookChapter, 'w');
if (!$sftpStream) {
throw new Exception("Could not open remote file: $dstBookChapter");
}
if (!file_exists($srcBookChapter)) {
throw new Exception("Could not find file: $srcBookChapter");
}
$data_to_send = file_get_contents($srcBookChapter);
if ($data_to_send === false) {
throw new Exception("Could not open local file: $dstBookChapter.");
}
if (fwrite($sftpStream, $data_to_send) === false) {
throw new Exception("Could not send data from file: $dstBookChapter.");
}
Zend_Db_Table::getDefaultAdapter()->update("transfers", array("transfer_status" => 1), array("id = ?" => $id[0]));
fclose($sftpStream);
} catch (Exception $e) {
Zend_Db_Table::getDefaultAdapter()->update("transfers", array("transfer_status" => 0), array("id = ?" => $id[0]));
$error = ('Exception: ' . $e->getMessage());
$errors[] .= $error;
}
}
$time_end = microtime(true);
$time = $time_end - $time_start;
zdd('Finished in ' . $time . ' seconds');
zddd('Done');
}