我正在尝试恢复zip文件。但是脚本花了很多时间来恢复小尺寸的文件。在我的身边,我的脚本需要7分钟才能恢复29 MB的zip文件。当我尝试使用Ajax恢复该文件时,我的脚本被击中,我收到此错误无法加载资源:服务器响应状态为500(内部服务器错误)。这是我的PHP要恢复的代码
$filepath='../wp-content/plugins/wp-cloud-safe/lib/www.extremenox.co_16_10_2015_06_%i_1445006234.zip';
$backupType="Restore";
RestoreBackup($filepath,$backupType,'Dropbox');
function RestoreBackup($filepath,$backupType,$Storage)
{
$newpath=$filepath;
$zip2 = new ZipArchive;
mkdir(ABSPATH."Restore", 0777);
if ($zip2->open($newpath) === TRUE) {
$zip2->extractTo(ABSPATH."Restore/");
$zip2->close();
$directory_path = ABSPATH."Restore/";
$rootPath = realpath($directory_path);
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
if(!is_dir($name))
{
// echo "in direct";
if($backupType=='incremental')
{
// echo "in incri";
$source =$name;
$path2=explode('incremental',$name);
$destination =$path2[1];
copy($source,$destination);
}
else
{
//echo "in restore";
$source =$name;
$path2=explode('Restore',$name);
$destination =$path2[1];
copy($source,$destination);
}
// exit;
}
}
update_option('check_activity_status','clear');
echo "Backup Restored Sucessfully from ".$Storage."!!";
unlink($filepath);
$path=realpath(ABSPATH."Restore/");
Delete($path);
}
}
如果我使用Ajax尝试此代码,那么这是我的JavaScript代码发送请求到PHP页面
var backupID="3";
var storageName="dropbox";
jQuery.ajax({
type: "POST",
data: {backupID:backupID,storageName:storageName},
url:'../wp-content/plugins/wp-cloud-safe/lib/wpSafeCloud_RestoreBackups.php',
dataType: "html",
success: function(html)
{}
});
任何正文都可以告诉问题是什么?为什么脚本在没有Ajax请求的情况下运行良好。