【发布时间】:2013-09-27 00:50:10
【问题描述】:
我正在使用多张图片上传社交网络应用程序。我将$_session['file_id'] 分配给每个上传的文件作为数组索引(文件ID 来自db)。但我只希望用户每篇文章最多上传 4 张图片。所以我在上传前计算images.length,如果是== 4,提醒用户不能同时上传更多文件,否则正常上传。出于安全目的,我有一个unset($_session['file_id']),以确保不会在错误或用户更改javascript时上传4个文件(每次上传时都有一个for循环,以计算$_session['file_id'])。
我遇到的问题是 js 本身不足以确保文件没有上传 4 次,我猜 ajax 上传留在队列中,并在第 4 个文件上传之前检查文件号。有没有其他方法可以直接在php上使用,记住我不能为普通用户取消设置文件(4个文件已经上传并等待发送按钮),但是如果用户刷新或退出页面,我需要加上取消设置文件?感谢您的宝贵时间。
JavaScript
var checkfilecount = 0;
$('#file').change(function() {
checkfilecount++;
checkfile = $("#images).length;
if (checkfile < 4 && checkfilecount < 4) {
$("#filesend").submit();
}
else {
setTimeout(function(){
alert("Sorry, You can`t upload too many files at once")
},3000)
}
})
在#postsend 上:
checkfilecount = 0;
PHP
if (isset($_SESSION['files_id'])) {
$counting = 0;
foreach($_SESSION['files_id'] as $key => $val)
{
$counting++;
if ($counting == 4) {
unset($_SESSION['files_id']);
exit("error on session array");
}
}
}
【问题讨论】:
-
编辑您的帖子并添加代码。
-
第 4 行:
checkfile = $("#images).length;在$('#images)的末尾漏掉了一个",它必须是$("#images")。
标签: php session file-upload