上传之前检查文件大小的其他方法

6

有没有其他办法可以在上传之前只检查文件的大小? 要求是如果文件超过限制,表单就不得提交。如果没有超过限制,则必须使用表单进行普通上传,而不必使用Flash将文件上传到服务器。

4个回答

2

1

在实例化SWFUpload时,您需要传递两个参数:file_size_limit和file_queue_error_handler:

new SWFUpload({
    file_size_limit: "10 MB",
    file_queue_error_handler: queueErrorHandler,
    [...]
})

然后:

function queueErrorHandler(file, errorCode) {
    if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) {
        alert("File exceeds the 10MB limit!");
    }
}

在开始上传之前,此操作会检查文件大小是否在限制范围内。


2
我只是不想使用Flash上传文件。我的意思是,我只想使用SWFUpload检查文件的大小,然后使用正常的过程上传文件。这似乎可行吗? - jean27
我还发现我无法操纵输入类型文件的值,所以我想我真正想要的是不可能的。 - jean27
是的,如果您可以设置普通文件输入的值属性,则仅使用SWFUpload检查文件大小就可以工作。 - Victor Stanciu
我们不能设置普通文件输入的value属性。这是不合法的。 - jean27
@jean27,我正试图做你在这里描述的事情,使用SWFUpload检查文件大小,然后让普通表单处理其他所有内容。你找到了一种方法吗?为什么你说“设置普通文件输入的值属性”是非法的?感谢任何帮助。 - TrojanName
@Brian,通过Javascript设置普通文件输入的值属性是非法的,并且<input type="file" />没有HTML属性来设置最小文件大小。我们只是使用SWFUpload上传文件。我们没有执行正常的流程。 - jean27

1

1
谢谢,但我们的上传必须与其他浏览器兼容。不管怎样,我会检查一下。 - jean27

1
可以通过SWFUpload控件检查文件大小。只需将SWFUpload控件放在Web表单标记之外。告诉用户点击SWFUpload按钮并指向他的上传文件。使用JavaScript确定文件大小,然后根据需要利用此信息,例如填充验证函数。然后,您的主表单将需要再次要求用户指向其上传文件,而这个字段将执行实际的文件上传。提交表单时,SWFUpload控件将被完全忽略,因为它不是主表单的一部分。

你能给个例子吗?我也只想要文件大小,没有其他的,我有自己的进度条和上传文件到服务器的方式。基本上我只想获取IE还不能给我的文件大小。谢谢! - PathOfNeo
我认为OP的问题中隐含了用户不应该再次浏览/选择文件。 - Amit Naidu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接