Feb
21

一般来说,在对一个文件域(input type=”file”)使用了验证后,我们总会希望把文件域中的值给清空了(否则错误的文件仍然会被提交),而在IE中,安全设置的原因,是不允许更改文件域的值的(也就是不能使用val(“”))

那么很显然,我们就只能换个思路,把这个input元素复制一个,然后将原来的删除。
在IE下复制元素的时候,其中的值是不会被复制的,所以就达到了清空文件域的目的了。
而在Firefox下,其中的值也会被一同复制,那么我们就顺便清空一下就做到兼容了。
代码如下:

var file = $(":file");
file.after(file.clone().val(""));
file.remove();
Feb
19

今天在用ASP.NET实现图片上传功能时遇到一个小问题。

使用表单文件域(input type=”file”)时,在PostBack中使用Request.Files获取不到文件。研究了半天,发现在input标签中使用runat=”server”后,是能够正常获取的。但是为了前端的元素ID不被修改,我尽可能不使用runat=”server”。

网上查阅了一下,最终让我找到了原因。用了高级货之后,忘本了呵呵。

要让form能够传递文件的话,必须要在form标签中加入enctype=”multipart/form-data”

<form enctype="multipart/form-data" ID="form1" runat="server">
      <input type="file" name="filename" />
</form>

在input 中使用了runat=”server”,那么ASP.NET会自动处理这些事情,而如果我们要自己DIY,就得记住这些啦!

top
42 queries. 0.290 seconds.