在线等,FX3的fileupload取value的老问题,望能解决,谢谢大家。
<html>
<head>
<title>get file input full path</title>
<script type="text/javascript">
function getid(id) {
return document.getElementById(id);
} function loadfile(){
getid("uploadedFile").onchange=function(){
getid("uploadedFileText").value=getid("uploadedFile").value;
};
}
window.onload=loadfile;
</script>
</head>
<body>
<input type="text" readonly="true" id="uploadedFileText" title="upload file"/>
<input type="file" name="uploadedFile" id="uploadedFile">
</body>
</html>
<html>
<head>
<title>get file input full path</title>
<script type="text/javascript">
function getid(id) {
return document.getElementById(id);
} function loadfile(){
getid("uploadedFile").onchange=function(){
getid("uploadedFileText").value=getid("uploadedFile").value;
};
}
window.onload=loadfile;
</script>
</head>
<body>
<input type="text" readonly="true" id="uploadedFileText" title="upload file"/>
<input type="file" name="uploadedFile" id="uploadedFile">
</body>
</html>
<script type="text/javascript">
// <![CDATA[
function inputFileOnChange() {
if(document.getElementById('my-file').files) {
// Support: nsIDOMFile, nsIDOMFileList
alert('value: ' + document.getElementById('my-file').value);
alert('files.length: ' + document.getElementById('my-file').files.length);
alert('fileName: ' + document.getElementById('my-file').files.item(0).fileName);
alert('fileSize: ' + document.getElementById('my-file').files.item(0).fileSize);
alert('dataurl: ' + document.getElementById('my-file').files.item(0).getAsDataURL());
alert('data: ' + document.getElementById('my-file').files.item(0).getAsBinary());
alert('datatext: ' + document.getElementById('my-file').files.item(0).getAsText("utf-8"));
};
};
// ]]>
</script>
<div>
<input type="file" name="my-file" id="my-file" onchange="inputFileOnChange();" />
</div>
只不过是被FF加过密的。也就是说,显示出来给人看是看不懂的。但是如果传给img标签,他是认的
IE下倒是可以获得上传文件file的路径的。
lz是否可以考虑在服务器端得到路径,然后在客户端用ajax返回!
我上Firefox的开发人员论坛看过,解释说之所以会在3.0之后将fileName.value只保留文件名,是避免客户端有人非法上传文件至服务器...... 唏嘘一下
哎,就这样吧,firefox既然已经这样设计fileupload了,找其他方法从客户角度来说是不太和谐的,今天匆忙发这样的帖子。
再次谢谢大家,结贴。