关于input file控件实现文件上传

做对象存储,前端file控件获取文件路径或者文件流,Ajax请求服务端处理页,完成文件上传到服务器。

不知个人思路有没有问题,搞了两天,缺乏交流,始终没发实现,也不知道各位一般采用什么方法实现,希望各位给予建议指点,万分感谢。

8个回答

ajax需要结合html5的FormData或者canvas将图片转为base64字符串才能上传文件,要不单ajax上传不了文件的。

可以使用jquery.form.js插件,支持FormData就用FomData,否则提交表单到iframe模拟ajax无刷新上传

http://lichuhui.iteye.com/blog/295905

o527883184
o527883184 今天搞好了 谢谢了
3 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复o527883184: $.ajax({ type: 'POST', data: formData对象, processData: false, 其他配置 })
3 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨等着我的招呼 回复o527883184: FormData直接post提交就行了,就和表单提交一样,不用JSON.stringify处理,处理过就出问题了。jquery的话要添加processData:false不处理表单数据才行
3 年多之前 回复
DOCALLEN
JesusAllen30 回复o527883184: http://www.tuicool.com/articles/Bzy6NvE
3 年多之前 回复
o527883184
o527883184 我用的formdata存file属性,然后发送请求到处理页面。要把formdata转换一下然后再处理页解析吗?试过JS中转JSON然后POST请求到处理页,不过在处理页没拿到JSON数据。
3 年多之前 回复

如果springMVC做controller,可以直接接受HttpRequestServle获取inputStream.

o527883184
o527883184 我使用的MVC,用这个方法可以直接获取到前端选中的文件的文件流吧。麻烦,可不可以稍微讲的详细一些?
3 年多之前 回复

用Ajax请求应该也可以,我没这么用过

一般用表单吧 文件类型的用ajax不好传值进去

o527883184
o527883184 我现在用的是把file属性存入formdata然后XML请求send到后台,但是不知道怎么去接收。在处理页面用什么来接收请求数据,就是发送过来的formdata
3 年多之前 回复

谁能解释一下上传文件的一个实现过程?本地可以直接通过文件路径使用.net File类获取到文件然后进行操作,当系统发布到外网,程序运行在远程服务器,通过文件路径就不能获取到文件了,采用数据流方式讲文件传输到服务器端处理页去进行处理,这意味着如果要将本地文件上传到第三方服务器就要先将文件流传输到自己服务器经过处理页面传到第三方服务器,是这样吗?

o527883184
o527883184 有没有一种方式直接前端JS获取文件的数据流,然后就可以直接调用第三方的API完成上传,进而不再需要经过自己的服务器中转提高效率。
3 年多之前 回复

fileUpload Js插件吧

最简单快捷的,使用jquery.ajaxfileupload.js,做做基本的文件上传还是很随意的

最简单快捷的,使用jquery.ajaxfileupload.js,做做基本的文件上传还是很随意的。

//关键代码
$.ajaxFileUpload({
                url : that.config.url, // 用于文件上传的服务器端请求地址
                secureuri : false, // 是否需要安全协议,一般设置为false
                fileElementId : 'file_upload', // 文件上传域的ID,对应一个<input type=“file" id="file_upload/>
                type:'POST',
                data : {
                    //额外传递的参数
                },
                dataType : 'text/html', // 返回值类型 一般设置为json
                success:function(res,status){}
    }
    ```
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐