不使用 input type file 标签 上传文件

问题描述

我调用别人的方法 返回一个文件路径 这个文件要上传到服务器上,input type file value 不能赋值 有什么办法 可以把个文件 上传到服务器上 问题补充:高级java工程师 写道

解决方案

前台得到路径 传给后台,有httpclient去获取不可以?
解决方案二:
几种js实现的动态多文件上传方式一:事先写好多个input.在点击时才显示。也就是说上传的最大个数是写死了的。 html<p><a href='#' onclick='javascript:viewnone(more1)'> 添加附件 </a><div id='more1' style='display:none'> <input type="file" name="attach1" size="50"javascript:viewnone(more2)> </span></div><div id='more2' style='display:none'> <input type="file" name="attach2" size="50"'></div></p>js <SCRIPT language="javascript"> function viewnone(e){ e.style.display=(e.style.display=="none")?"":"none"; }</script>方式二:这种方式的动态多文件上传是实现了的,很简单的,不说废话看codehtml<input type="button" name="button" value="添加附件" onclick="addInput()"><input type="button" name="button" value="删除附件" onclick="deleteInput()"><span id="upload"></span>js<script type="text/javascript"> var attachname = "attach"; var i=1; function addInput(){ if(i>0){ var attach = attachname + i ; if(createInput(attach)) i=i+1; } } function deleteInput(){ if(i>1){ i=i-1; if(!removeInput()) i=i+1; } } function createInput(nm){ var aElement=document.createElement("input"); aElement.name=nm; aElement.id=nm; aElement.type="file"; aElement.size="50"; //aElement.value="thanks"; //aElement.onclick=Function("asdf()"); if(document.getElementById("upload").appendChild(aElement) == null) return false; return true; } function removeInput(nm){ var aElement = document.getElementById("upload"); if(aElement.removeChild(aElement.lastChild) == null) return false; return true; } </script>方式三:动态多文件上传,只是在oFileInput.click();这个地方,这样做就不能上传这个文件了,因为发现它在上传之时就把这个input中的文件置空了。很可能是为了安全着想吧!另外还有一点就是说,click()只有在ie中才能正常运行。虽说这种方式最终没能实现上传,但还是留下来参考,看看是否有人可以真正实现上传。 html<A href="javascript:newUpload();">添加附件</A><TABLE width="100%" border="0" cellpadding="0" cellspacing="1"> <TBODY id="fileList"></TBODY></TABLE><DIV id="uploadFiles" style="display:block"></DIV>js<SCRIPT language="javascript"> //---新建上传 function newUpload(){ var oFileList = document.getElementById("fileList"); var fileCount = oFileList.childNodes.length + 1; var oFileInput = newFileInput("upfile_" + fileCount); if(selectFile(oFileInput)){ addFile(oFileInput); } } //----选择文件 function selectFile(oFileInput){ var oUploadFiles = document.getElementById("uploadFiles"); oUploadFiles.appendChild(oFileInput); oFileInput.focus(); oFileInput.click();//不能这样做,可能是为了安全着想吧! var fileValue = oFileInput.value; if(fileValue == ""){ oUploadFiles.removeChild(oFileInput); return false; } else return true; } //---新建一个文件显示列表 function addFile(oFileInput){ var oFileList = document.getElementById("fileList"); var fileIndex = oFileList.childNodes.length + 1; var oTR = document.createElement("TR"); var oTD1 = document.createElement("TD"); var oTD2 = document.createElement("TD"); oTR.setAttribute("id","file_" + fileIndex); oTR.setAttribute("bgcolor","#FFFFFF"); oTD1.setAttribute("width","6%"); oTD2.setAttribute("width","94%"); oTD2.setAttribute("align","left"); oTD2.innerText = oFileInput.value; oTD1.innerHTML = '<A href="javascript:removeFile('+ fileIndex + ');">删除</A>'; oTR.appendChild(oTD1); oTR.appendChild(oTD2); oFileList.appendChild(oTR); } //---移除上传的文件 function removeFile(fileIndex){ var oFileInput = document.getElementById("upfile_" + fileIndex); var oTR = document.getElementById("file_" + fileIndex); uploadFiles.removeChild(oFileInput); fileList.removeChild(oTR); } //---创建一个file input对象并返回 function newFileInput(_name){ var oFileInput = document.createElement("INPUT"); oFileInput.type = "file"; oFileInput.id = _name; oFileInput.name = _name; oFileInput.size="50"; //oFileInput.setAttribute("id",_name); //oFileInput.setAttribute("name",_name); //oFileInput.outerHTML = '<INPUT type=file id=' + _name + ' name=' + _name + '>'; //alert(oFileInput.outerHTML); return oFileInput; } </SCRIPT>
解决方案三:
根据返回的文件路径读取这个文件(流的形式),根据这个流生成文件,然后输出到服务器上,不需要使用file标签了
解决方案四:
不是这样吗?<input type="file" value="上传">
解决方案五:
使用httpclient 或socket等是否可以
解决方案六:
加我QQ:503229799 或者看这个地址有例子http://zhidao.baidu.com/question/259345415.html

时间: 2024-09-13 14:26:25

不使用 input type file 标签 上传文件的相关文章

a标签上传文件在IE10上面操作的时候很慢,在IE11上很快

问题描述 我在用a标签上传文件的时候在IE10上面会很慢才会走后台保存,在IE11上面就很快.上传的页面代码如下:<tablestyle='width:100%;height:100%;'id='tb_data2'><trstyle='height:23px;'><thstyle='width:70px;'>序号</th><th>材料名称</th><th>附件上传</th><thstyle='width:

file zilla上传文件时退出之前已上传的照片会被保存吗?急求

问题描述 filezilla上传文件时退出之前已上传的照片会被保存吗? 解决方案 解决方案二:会的吧,只不过这个文件可能不完整.解决方案三:是什么样的不完整,打不开?

&amp;amp;lt;input type=&amp;amp;quot;file&amp;amp;quot; &amp;amp;gt;如何实现上传文件到服务器

问题描述 <input type="file" >如何实现上传文件到服务器 <form method="post" enctype="multipart/form-data" id="UpLoad"> <div> <input type="file" id="upFile" name="upFile"> </div

html5获取上传文件信息的例子

在html4中使用input[type=file]来上传文件,在html5中也是如此,但却比html4丰富了许多. 如: <input type="file" name="aa" multiple="multiple" id="aa" value="" /> 增加了multiple属性,加上以后可以同时上传多个文件. <input type="file" name=&q

PHP上传文件的代码

动态网站开发中,常用的PHP上传文件的代码实例. 以下为引用的内容: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>网页教学网(webjx.com)文件上传实例</title> </head> <body> <form enctype="

ios-关于iOS POST上传文件

问题描述 关于iOS POST上传文件 恩 是这样的 后台的上传需要账号密码验证,具体表单如下 < form enctype="multipart/form-data" action="http://Xxxxxxxxxx.com/xxxxxxxxx" method="POST"> 账号:<input type="text" name="FromUserName" value="&

asp.net中MVC借助Iframe实现无刷新上传文件实例_实用技巧

本文实例讲述了asp.net中MVC借助Iframe实现无刷新上传文件的方法.分享给大家供大家参考.具体实现方法如下: html: 复制代码 代码如下: <div id="uploadwindow" style="display: none;">     <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1&

PHP一步步实现文件上传及上传文件类

一,比较简单的实现文件上传 文件上传原理 文件上传原理:将客户端的文件先上传到服务器端,然后再将服务器端的临时文件移动到指定的目录. 客户端配置 要上传文件,我们需要采用表单,并且表单发送的形式来POST请求,而且要求将enctype设置为multipart/form-data,总结上传的条件如下: 浏览器表单页面 表单发送方式为post 指定enctype=multipart/form-data 客户端的代码: <form action="uploadFile.php" met

ajax +jsp+iframe无刷新上传文件

  http://hi.baidu.com/zj360202/blog/item/f23e3711f929c774cb80c475.html ajax jsp 无刷新上传文件 2009-10-26 16:43首先要说的就是 ajax 是无法实现上传文件的,可以想一下ajax与后台通信都是通过传递字符串,怎么能传递文件呢?其实出于安全考虑js是不能操作文件的,所以就不要再说用ajax来实现文件的上传了,这是不可能的.    而本文实现的文件上传也是无页面刷新的,可以说是一种"类似AJAX"