<input type="file" name="image" value="默认值" />这样给值给不了因为file是只读。那我要把从数据库里面读取的路径怎么放进去呢 ?
用文本框加按钮实现吧,把file隐藏掉,点击按钮触发file来实现上传,这样的话选择文件按钮也不会那么难看了,我一般都这样干
虽然我已经很久没做过前端的东西了,但这个我好像还记得是拿其他div,input,css做个类似upload的玩意。
而且很好奇你把这个路径放进去能干嘛?难道要用户去修改不成?
不是修改,只是放进去让用户看到他之前存放的图片地址
@+pf: 没意义吧。你想下你页面呈现出来显示个d:\1.jpg对使用者有用么?这个相反会让用户很困惑,而且你一旦这样做了后面你就蛋疼了,可能会说尼玛这上面显示的是d盘为毛我点了上传出现的对话框中的位置怎么在桌面?
@Daniel Cai: 有道理,,,去跟领导反映下。。
如果只是放进去,让用户能看到图片地址的话,可以用 type="text",然后js赋值图片的路径。
做这个的初衷是进来显示,之后他还可以更改,选择新图片重新上传
@+pf: 哦哦
@+pf: 我搜了搜,网上说用 模拟键盘输入 来实现效果,可以看看
不知道你解决没有,我们公司在做的项目有一个头像上传功能。一开始用的input(text) 显示图片,input(file)上传。可是发现不能实现。因为input(file)上传以后会把路径加密,如果把直接把input file的值-路径显示处理,无法实现。
后来是用了AjaxFileUpload插件,把图片转化成二级制流用c#,存在本地项目目录下。
至于显示图片呢,则参考了网上的一段代码:
1 var $file = $(this); 2 var fileObj = $file[0]; 3 var windowURL = window.URL || window.webkitURL; 4 var dataURL; 5 var $img = $("#headImg"); 6 if (fileObj && fileObj.files && fileObj.files[0]) { 7 dataURL = windowURL.createObjectURL(fileObj.files[0]); 8 $img.attr('src', dataURL); 9 } else { 10 dataURL = $file.val(); 11 var imgObj = document.getElementById("headImg"); 12 // 1、在设置filter属性时,元素必须已经存在在DOM树中,动态创建的Node,也需要在设置属性前加入到DOM中,先设置属性在加入,无效; 13 // 2、src属性需要像下面的方式添加,上面的两种方式添加,无效; 14 imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; 15 imgObj.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = dataURL; 16 }