对于 input 为 file 的组件
如何通过 js 给 它赋值
比如 :
var str ='c:/ab.txt';
var f = document.getElementById('file1');
如如 让 f.value = str;
f.value 为只读属性
如何搞??
这是java版的模拟file上传文件:
http://hi.baidu.com/ivgf/blog/item/63d69e335f8b2440ad4b5ff7.html/cmtid/43a8b5d3dff650d7a8ec9a30
这个当然了,浏览器本身的安全限制,哪能直接这么用js赋值,
如果可以的话,人家访问你的网站,你默默地把用户系统的文件都上传到你服务器上,那还得了
不行赋值的,安全限制了,想别的方式显示,不要用type=file
不行的,可以用text模拟一个file类型的input。实现修改的功能。
冒昧问问:你为什么要这么做?
浏览器安全限制不允许这样
[quote]主要是这样,当页面表单提交过去之后,由于某些选项内容 输入不合法
完了在返回到页面,这样 file 框的内容就没有了
目的是 当不合法后 能将之前选择的 文件给恢复过来 [/quote]
这样设计不是很好了,
根据用户体验设计原则,应该返回不合法输入让用户重新输入,合法的输入可以让用户进一步修改,
完全可以把合法输入隐藏起来[color=red]以防影响用户输入其他内容。[/color]
当然如果用户想修改之前合法的输入,可以通过点击“更多选项”链接或者按钮将合法输入显示出来。
可以用这种方式来实现
http://www.iajax.net/article/11
http://hi.baidu.com/bingzhecom/blog/item/116add1626673053f2de3276.html
直接赋值是不可能的,变通着搞就行了,
我发给你的文章中就能解决这个问题
如果非要显示的话,只能通过模拟input[file]控件了。
看看这个模拟:
http://blog.csdn.net/ben0133/archive/2009/03/18/4000531.aspx
另外在后台取自为空这个问题,可以将之前的路径放在隐藏域总input[hiden].
后台逻辑处理前台传来的两个个值,
1.如果两个为空,报错,
2,input[file]的value控件为空,input[hiden]的value不为空,则取input[hiden]的value
3,两个都不为空,,则取input[file]的value.
不难:看看下面几种方法: