这几天处理了一个文件上传的问题。使用的是比较常用的Apache的一个模块。问题的关键不在于后台程序,经过测试,后台是没有问题的,关键还在前端。因为我使用ie6时可以成功上载,而使用Firefox和chrome以及IE8时就会上载失败。在网上搜了下,相关的信息很少。后来我在调试时发现ie6通过<input type="file">传上去的文件名为带有完整本地路径的文件名,如“c:/myfile/test.doc”,而在其他的浏览器中则只有文件名"test.doc"。到Firefox的官网上看了下文档,原来是因为安全原因,因为完整的路径容易泄露用户信息,并且没有用,所以Firefox等就只返回文件名。IE8这些新的浏览器也都是只显示文件名。
找到问题所在,问题也就解决了一半。在后台代码里加入一个判断,看看filename里是否有“/”,如果有,就从最后一个"/"开始读文件名。因为文件名是不能含有"/"和“/”的,所以这种方法基本上就把这个问题解决了。
下面是我使用的后台代码:
本文探讨了在不同浏览器中使用<input type=file>元素上传文件时遇到的问题,特别是在文件名返回格式上的差异。文章提供了一种解决方案,通过检查并截取文件名来确保兼容性。
&spm=1001.2101.3001.5002&articleId=4925399&d=1&t=3&u=a9ef80f901d442cda37bb3e1f65cb51e)
1289

被折叠的 条评论
为什么被折叠?



