问题描述
我一直以来都是做基于数据库的c/s模式下的应用开发,最近抽出一定的时间和精力想进一步学习和研究一下jsp、asp.net的WEB开发。现在有这样一个问题想请教在JAVASERVLET中ServletInputStream类是用来读取客户端请求中的二进制数据,但问题我没想明白和找到答案的是在表单中是如何将二进制数据发到Servlet的呢?如在表单中有一个图片选择文本框,经过选择按钮选择一个图片文件后,在文本框中写入文件的路径,然后提交表单时将此图片文件上传给服务器,并保存到服务器上。同时,反过来在日后的登录中服务器也会将对应的图片显示出来,这应该是服务器端Servlet通过ServletOutputStream类将二进制数据发送到客户端的吧?我想搞清楚的就是如何实现这双向的二进制数据传输的?请大侠不吝赐教!!!
解决方案
解决方案二:
这个应该是SERVLET内部处理的东西,就像你写一个ALERT(),为什么会弹出窗口一样,就是那样的
解决方案三:
建议你看一下http信息头,在提交的时候抓取一下至于servlet是如何抓取的,其实和你写c/s结构差不多的,监听端口,分配线程,装饰request,读取数据然后应答建议你看一下《java高级网络编程》这本书,里面讲解的很详细
解决方案四:
直接用组件SMARTUPLOAD省事省心
解决方案五:
1,servlet获取上传的文件http://commons.apache.org/fileupload/2,"如在表单中有一个图片选择文本框,经过选择按钮选择一个图片文件后,在文本框中写入文件的路径,然后提交表单时将此图片文件上传给服务器"不是文本框。而是<INPUTTYPE="FILE"...../>
解决方案六:
引用3楼guolimin1118的回复:
直接用组件SMARTUPLOAD省事省心
大哥,人家问的是原理顺便帮顶
解决方案七:
form要先这么一下,不能按照普通模式那样提交。<formENCTYPE="multipart/form-data"
服务器端也不能像普通模式那样,读取数据。request.getParameter("name")会不管用的。可以用用commons-fileupload,apache的项目。。。--------------细粒度权限管理www.metadmin.com
解决方案八:
上传图片,可以用commons-fileupload将文件流上传到服务器端,然后后台将数据流存到服务器文件系统中或者后台数据库中浏览图片,然后将文件系统或后台数据库中数据都出来就可以了。这个涉及到双向数据流动,如果预算充足,还是用国产商业报表工具吧,推荐FineRpeort,目前国外的报表工具,都没有数据从客户端到数据库的处理。
解决方案九:
其实不用这么复杂先转成二进制流用setbinary()存进去读图片的时候先实例化成一个blob对象再转化成bytes型的数组再用outputstream读出来就好了
解决方案十:
我也在做这个东西,不知道怎么做呀。