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

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

问题描述:

我调用别人的方法 返回一个文件路径 这个文件要上传到服务器上,input type file value 不能赋值 有什么办法 可以把个文件 上传到服务器上

前台得到路径 传给后台,有httpclient去获取不可以?

加我QQ:503229799 或者看这个地址有例子[url]http://zhidao.baidu.com/question/259345415.html[/url]

使用httpclient 或socket等是否可以

不是这样吗?

根据返回的文件路径读取这个文件(流的形式),根据这个流生成文件,然后输出到服务器上,不需要使用file标签了

[code="java"]几种js实现的动态多文件上传方式一:事先写好多个input.在点击时才显示。也就是说上传的最大个数是写死了的。
html


添加附件

js <br> function viewnone(e){<br> e.style.display=(e.style.display==&quot;none&quot;)?&quot;&quot;:&quot;none&quot;;<br> }<br>
方式二:这种方式的动态多文件上传是实现了的,很简单的,不说废话看code
html


js 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; }

方式三:动态多文件上传,只是在oFileInput.click();这个地方,这样做就不能上传这个文件了,因为发现它在上传之时就把这个input中的文件置空了。很可能是为了安全着想吧!
另外还有一点就是说,click()只有在ie中才能正常运行。
虽说这种方式最终没能实现上传,但还是留下来参考,看看是否有人可以真正实现上传。
html
添加附件

js
<pre><code>//---新建上传 function newUpload(){ var oFileList = document.getElementById(&quot;fileList&quot;); var fileCount = oFileList.childNodes.length + 1; var oFileInput = newFileInput(&quot;upfile_&quot; + fileCount); if(selectFile(oFileInput)){ addFile(oFileInput); } } //----选择文件 function selectFile(oFileInput){ var oUploadFiles = document.getElementById(&quot;uploadFiles&quot;); oUploadFiles.appendChild(oFileInput); oFileInput.focus(); oFileInput.click();//不能这样做,可能是为了安全着想吧! var fileValue = oFileInput.value; if(fileValue == &quot;&quot;){ oUploadFiles.removeChild(oFileInput); return false; } else return true; } //---新建一个文件显示列表 function addFile(oFileInput){ var oFileList = document.getElementById(&quot;fileList&quot;); var fileIndex = oFileList.childNodes.length + 1; var oTR = document.createElement(&quot;TR&quot;); var oTD1 = document.createElement(&quot;TD&quot;); var oTD2 = document.createElement(&quot;TD&quot;); oTR.setAttribute(&quot;id&quot;,&quot;file_&quot; + fileIndex); oTR.setAttribute(&quot;bgcolor&quot;,&quot;#FFFFFF&quot;); oTD1.setAttribute(&quot;width&quot;,&quot;6%&quot;); oTD2.setAttribute(&quot;width&quot;,&quot;94%&quot;); oTD2.setAttribute(&quot;align&quot;,&quot;left&quot;); oTD2.innerText = oFileInput.value; oTD1.innerHTML = &#39;&lt;A href=&quot;javascript:removeFile(&#39;+ fileIndex + &#39;);&quot;&gt;删除&lt;/A&gt;&#39;; oTR.appendChild(oTD1); oTR.appendChild(oTD2); oFileList.appendChild(oTR); } //---移除上传的文件 function removeFile(fileIndex){ var oFileInput = document.getElementById(&quot;upfile_&quot; + fileIndex); var oTR = document.getElementById(&quot;file_&quot; + fileIndex); uploadFiles.removeChild(oFileInput); fileList.removeChild(oTR); } //---创建一个file input对象并返回 function newFileInput(_name){ var oFileInput = document.createElement(&quot;INPUT&quot;); oFileInput.type = &quot;file&quot;; oFileInput.id = _name; oFileInput.name = _name; oFileInput.size=&quot;50&quot;; //oFileInput.setAttribute(&quot;id&quot;,_name); //oFileInput.setAttribute(&quot;name&quot;,_name); //oFileInput.outerHTML = &#39;&lt;INPUT type=file id=&#39; + _name + &#39; name=&#39; + _name + &#39;&gt;&#39;; //alert(oFileInput.outerHTML); return oFileInput; } </code></pre> <p>[/code]