永发信息网

java web不用框架怎么做上传下载?

答案:3  悬赏:0  手机版
解决时间 2021-01-29 13:53
java web不用框架怎么做上传下载?
最佳答案
我不方便发链接;上传&nbsp。具体可以在百度中搜索: form servlet ,  有相关的资料和示例。



如果是下载,直接用Servlet读取服务器上资源;&nbsp,然后以流的信息输出到前端。

如果是上传,在form中 post  mutilpart/form-data 类型的数据给Servlet都可以采用Servlet来实现
全部回答
struts 有提供的。 文件上传 1.jsp页面 <s:form action="fileaction" namespace="/file" method="post" enctype="multipart/form-data"> <!-- name为后台对应的参数名称 --> <s:file name="files" label="file1"></s:file> <s:file name="files" label="file2"></s:file> <s:file name="files" label="file3"></s:file> <s:submit value="提交" id="submitbut"></s:submit> </s:form> 2.action //单个文件上传可以用 file files,string filesfilename,string filescontenttype //名称要与jsp中的name相同(三个变量都要生成get,set) private file[] files; // 要以file[]变量名开头 private string[] filesfilename; // 要以file[]变量名开头 private string[] filescontenttype; private servletcontext servletcontext; //action调用的上传文件方法 public string execute() { servletcontext servletcontext = servletactioncontext.getservletcontext(); string datadir = servletcontext.getrealpath("/file/upload"); system.out.println(datadir); for (int i = 0; i < files.length; i++) { file savefile = new file(datadir, filesfilename[i]); files[i].renameto(savefile); } return "success"; } 3.配置上传文件临时文件夹(在struts.xml中配置) <constant name="struts.multipart.savedir" value="c:/temp"/> 文件下载 1.下载的url(到action) <a href="${pagecontext.request.contextpath}/file/fileaction!down.action">下载</a> 2.struts.xml配置 <package name="file" namespace="/file" extends="struts-default"> <action name="fileaction" class="com.struts2.file.fileaction"> <!-- 下载文件配置 --> <!--type 为 stream 应用 streamresult 处理--> <result name="down" type="stream"> <!-- 不管实际类型,待下载文件 contenttype 统一指定为 application/octet-stream 默认为 text/plain --> <param name="contenttype">application/octet-stream</param> <!-- 默认就是 inputstream,它将会指示 streamresult 通过 inputname 属性值的 getter 方法, 比如这里就是 getinputstream() 来获取下载文件的内容,意味着你的 action 要有这个方法 --> <param name="inputname">inputstream</param> <!-- 默认为 inline(在线打开),设置为 attachment 将会告诉浏览器下载该文件,filename 指定下载文 件保有存时的文件名,若未指定将会是以浏览的页面名作为文件名,如以 download.action 作为文件名, 这里使用的是动态文件名,${filename}, 它将通过 action 的 getfilename() 获得文件名 --> <param name="contentdisposition">attachment;filename="${filename}"</param> <!-- 输出时缓冲区的大小 --> <param name="buffersize">4096</param> </result> </action> </package> 3.action //action调用的下载文件方法 public string down() { return "down"; } //获得下载文件的内容,可以直接读入一个物理文件或从数据库中获取内容 public inputstream getinputstream() throws exception { string dir = servletcontext.getrealpath("/file/upload"); file file = new file(dir, "icon.png"); if (file.exists()) { //下载文件 return new fileinputstream(file); //和 servlet 中不一样,这里我们不需对输出的中文转码为 iso8859-1 //将内容(struts2 文件下载测试)直接写入文件,下载的文件名必须是文本(txt)类型 //return new bytearrayinputstream("struts2 文件下载测试".getbytes()); } return null; } // 对于配置中的 ${filename}, 获得下载保存时的文件名 public string getfilename() { string filename ="图标.png"; try { // 中文文件名也是需要转码为 iso8859-1,否则乱码 return new string(filename.getbytes(), "iso8859-1"); } catch (unsupportedencodingexception e) { return "icon.png"; } }
如果是下载很好弄,直接请求一个资源路径或者把资源直接写到输出流。 如果上传要用commons-io和commons-fileupload.不然你得不到想要的数据
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
邱古庄村怎么去啊,我要去那办事
九潭居民委员会地址在什么地方,想过去办事
【激光打印机原理】激光打印机打印原理是()。
杨疙瘩村地址在哪,我要去那里办事
马嘶村民委员会地址在什么地方,我要处理点事
雾霾天气行车注意事项
但丁被誉为旧时代的最后一位诗人,同时又是新
我用朋友的滴滴账号跑车,被运政查到怎么办?
响屧的意思是什么啊?知道的请说下!
建水东门是干什么的?看到有卖那个东西。
谢桥宾馆指什么?
桥上或隧道内的管线敷设应符合哪些规定?
【猜书名 (一道题目)E H I T B A L O 这是
钢管外径610内径525mm一根多长
如果没有学历,可以当工程师不?
推荐资讯
宫庭村民委员会地址在什么地方,我要处理点事
纸箱一般是硬度越高质量越好吗?
中国邮政储蓄银行ATM(南昌路营业所)地址在什
自己开车聊城到赤峰高速费用得多少钱?
【doat】whatdopeopleusuallydoat或on.什么时
梅花数码摄影(塘吓大道与205国道交叉口东南15
读了《卖火柴的小女孩》有什么感受作文
如何看待暴走漫画被封停?
石渠县车管所地址有知道的么?有点事想过去
柳州市柳南区太阳村派出所地址在什么地方,我
组成人体细胞内遗传物质的核苷酸的种类有A. 8
荒诞的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?