PHP随机中断
我已经创建了一个非常基本的网站,它获取一系列图像URL,对它们进行压缩,并返回zip位置。问题是脚本在某个点中断 通常会发生以下情况之一:PHP随机中断,php,Php,我已经创建了一个非常基本的网站,它获取一系列图像URL,对它们进行压缩,并返回zip位置。问题是脚本在某个点中断 通常会发生以下情况之一: 并不是所有的图片都被复制了 并非所有图片都被复制,最后一张图片的文件大小为0 有时ajax调用不会运行错误或成功回调 这是因为服务器只允许脚本执行一定的时间吗?它似乎确实适用于较少的图片。我能做什么 我有以下设置: 最大执行时间10 max_文件上传20 最大输入嵌套级别64 最大输入时间10 此外,设置时间限制被禁用 我尝试了ini_集合(“最大执
- 并不是所有的图片都被复制了
- 并非所有图片都被复制,最后一张图片的文件大小为0
- 有时ajax调用不会运行错误或成功回调
- 最大执行时间10
- max_文件上传20
- 最大输入嵌套级别64
- 最大输入时间10
<?php
include('zip2.php');
header("content-type: text/javascript");
function err($que){
$obj->err = $que;
echo $_GET['callback']. '(' . json_encode($obj) . ');';
die;
}
if(!count($_GET['pictures'])>0){die;}
$tmpp = tempnam('userzips','mod');
unlink($tmpp);
$loc = 'userzips/'.basename($tmpp);
mkdir($loc);
$a=$_GET['pictures'];
for($i=0;$i<count($a);$i++){
copy($a[$i],$loc.'/'.basename($a[$i])) or err("didn't zip");
}
Zip($loc,$loc.'/pictures.zip') or err("didn't zip");
$obj->loc = 'http://mysite.com/'.$loc.'/pictures.zip';
$obj->allgood = true;
echo $_GET['callback']. '(' . json_encode($obj) . ');';
?>
上传最大文件大小和发布最大文件大小也是原因之一
upload_max_filesize=100M
post_max_size=105M
max_execution_time=600
max_input_time=600
复制时尝试检查错误
if(!@copy('http://someserver.com/somefile.zip','./somefile.zip'))
{
$errors= error_get_last();
echo "COPY ERROR: ".$errors['type'];
echo "<br />\n".$errors['message'];
} else {
echo "File copied from remote!";
}
if(!@copy()http://someserver.com/somefile.zip“,”./somefile.zip'))
{
$errors=error_get_last();
回显“复制错误:”.$errors['type'];
回显“
\n”。$errors['message'];
}否则{
echo“从远程复制的文件!”;
}
我还听说,当url有空格时,复制会出现一些问题。您是否启用了错误报告功能?因为您至少有两个完全不相关的问题(没有调用AJAX回调和服务器端问题),并且没有绝对没有调试信息,我建议您暂时休息一下,摆脱众多问题的困扰,然后检查代码并将其简化到可以成功重现一个问题的程度(例如,创建一个新的php页面并模拟100个URL的输入)。顺便说一下,一个非常基本的网站是echo'Hello,world'代码>。你的很复杂。另外,请检查您的apache错误日志,查看可能发生的任何错误。但如果我复制它,它是否算作上载?不,它不=)我第一次并没有理解这个问题,所以问题出在其他。。是否使用curl复制图像?否,使用copy(externalurl、serverurl);当然只是有点尴尬:D.还有,我要用ini_set设置吗?我试过了,但没有改变任何东西,也没有出错