我知道这是一个古老的脚本(一种古老的做事方式)。但是,脚本有效,图像不按正确的顺序上传。我不太确定,但它看起来我们从上到下而不是从头到尾上传。是什么让它做到的?
if (count($_FILES['pic']['tmp_name']))
{
$ipval = ipval();
$uploaderror = 0;
$uploadcount = 0;
$errorMessages = array();
foreach ($_FILES['pic']['tmp_name'] as $k=>$tmpfile)
}
if ($tmpfile)
{
$thisfile = array("name"=>$_FILES['pic']['name'][$k],
"tmp_name"=>$_FILES['pic']['tmp_name'][$k],
"size"=>$_FILES['pic']['size'][$k],
"type"=>$_FILES['pic']['type'][$k],
"error"=>$_FILES['pic']['error'][$k]);
if ($_FILES['pic']['size'][$k] > $pic_maxsize*1000)
{
$errorMessages[] = $thisfile['name'] . " - " . $lang['ERROR_UPLOAD_PIC_TOO_BIG'];
$uploaderror++;
}
elseif (!isValidImage($thisfile))
{
$errorMessages[] = $thisfile['name'] . " - " . $lang['ERROR_UPLOAD_PIC_BAD_FILETYPE'];
$uploaderror++;
}
else
{
$newfile = SaveUploadFile($thisfile, "{$path_escape}{$datadir['adpics']}", TRUE, $images_max_width, $images_max_height);
if($newfile)
{
$sql = "INSERT INTO $t_adpics
SET adid = $adid,
picfile = '$newfile'";
mysql_query($sql);
if (mysql_error())
{
...
答案 0 :(得分:0)
如果通过“order”表示您在多个文件输入中选择图像的顺序,则不能依赖后端的顺序。它因浏览器和服务器而异:does multiple upload follow the same order of uploading in which we select the images?
如果您总是看到订单被撤消,也许您需要更改提供服务的脚本中的一些代码(ASC
而不是DESC
)。
您可以保持订单一致的一种方法是在上传时向服务器发送另一个变量,该变量按顺序包含文件名数组,然后将您的INSERT
订单基于该数组,而不是$_FILES
数组。