JavaWeb学习总结(五十)——文件上传和下载(转载)

posted on 2015-01-05 11:16  孤傲苍狼  阅读(505505)  评论(189编辑  收藏

<div class="pager">
    <!-- 上一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(3, 50); return false;">
        &lt; Prev
    </a>

    <!-- 第一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        1
    </a>

    <!-- 前半部分页码 -->
    
            <a href="#!comments" onclick="commentManager.renderComments(2, 50); return false;">
                2
            </a>
            <a href="#!comments" onclick="commentManager.renderComments(3, 50); return false;">
                3
            </a>

    <!-- 当前页 -->
    <span class="current">4</span>

    <!-- 后半部分页码 -->

    
    <!-- 末尾页 -->
    

    <!-- 下一页 -->
    
</div>

评论

#151楼

				<span>

2017-08-09 15:58

				</span>
			

        <a id="a_comment_author_3753876" href="https://home.cnblogs.com/u/1209556/" target="_blank">苍狼小跟班</a>

		</h4>
		<p>

有点小尴尬,用hash算法打散存储,由于我计算机组成原理学的很烂,花了20分钟才弄明白 0xf 0xf0 与运算 左移4位
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#152楼

				<span>

2017-08-28 16:55

				</span>
			

        <a id="a_comment_author_3768614" href="https://www.cnblogs.com/-zpy/" target="_blank">有朋远方来</a>

		</h4>
		<p>

很不错
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#153楼

				<span>

2017-10-03 10:13

				</span>
			

        <a id="a_comment_author_3802442" href="https://home.cnblogs.com/u/1251488/" target="_blank">szh_cnbolgs</a>

		</h4>
		<p>

代码写的真规范,拜服大神
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#154楼

				<span>

2017-10-10 01:55

				</span>
			

        <a id="a_comment_author_3805851" href="https://www.cnblogs.com/jackzhoumine/" target="_blank">JackZhouMine</a>

		</h4>
		<p>

大神,很好! 推荐。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#155楼

				<span>

2017-10-13 19:00

				</span>
			

        <a id="a_comment_author_3809902" href="https://home.cnblogs.com/u/1255802/" target="_blank">弯弓射雕的男人</a>

		</h4>
		<p>

为什么 我的
String savePath = this.getServletContext().getRealPath("/WEB-INF/upload");
报错 路径该怎么写 ???
报的空指针
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#156楼

				<span>

2017-10-18 21:52

				</span>
			

        <a id="a_comment_author_3814725" href="https://www.cnblogs.com/shaoguangjie/" target="_blank">花城</a>

		</h4>
		<p>

如果上传失败怎么办?我收过一个0字节的文件
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#157楼

				<span>

2017-11-14 23:37

				</span>
			

        <a id="a_comment_author_3840733" href="https://home.cnblogs.com/u/1222700/" target="_blank">森大人大</a>

		</h4>
		<p>

请问为什么我的list得不到值呢
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#158楼

				<span>

2017-11-21 15:55

				</span>
			

        <a id="a_comment_author_3846488" href="https://home.cnblogs.com/u/1284189/" target="_blank">lily18</a>

		</h4>
		<p>

import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
为什么我到了包,还是会报错,提示找不到资源,然后一直错
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#159楼

				<span>

2017-11-29 15:52

				</span>
			

        <a id="a_comment_author_3853463" href="https://home.cnblogs.com/u/1289679/" target="_blank">van9</a>

		</h4>
		<p>

上传文件。文件内中的数据乱码
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#160楼

				<span>

2017-12-06 22:46

				</span>
			

        <a id="a_comment_author_3859651" href="https://home.cnblogs.com/u/1250650/" target="_blank">Tzher</a>

		</h4>
		<p>

@ 琴瑟在御人
引用
大哥 如我上传文件传到了\WEB-INF\upload\13\15\日语练习.txt 下载时候自动创建了空路径\WEB-INF\upload\7\10\ 这个什么问题啊

楼主。我的也是这个问题 这是为什么,如果复制到upload文件夹里面去,可以显示但是不能下载“资源被删除”什么的
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#161楼

				<span>

2017-12-06 23:01

				</span>
			

        <a id="a_comment_author_3859661" href="https://home.cnblogs.com/u/1250650/" target="_blank">Tzher</a>

		</h4>
		<p>

请问那个“孤傲的苍狼”那个教程,你运行成功了吗?我出现了很多错误,比如已经存在了upload文件夹还是会再次创建一个类似于“upload\0\13”的文件夹,但是上传的文件却在文件夹外面,如果点击显示文件列表的话,是upload路径,但是没并没有传进去文件,而是在外面创建了文件夹以及文件。如果复制文件到upload可以看到文件列表,点击下载会显示“文件资源部存在”。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#162楼

				<span>

2017-12-06 23:01

				</span>
			

        <a id="a_comment_author_3859662" href="https://home.cnblogs.com/u/1250650/" target="_blank">Tzher</a>

		</h4>
		<p>

,你们运行成功了吗?我出现了很多错误,比如已经存在了upload文件夹还是会再次创建一个类似于“upload\0\13”的文件夹,但是上传的文件却在文件夹外面,如果点击显示文件列表的话,是upload路径,但是没并没有传进去文件,而是在外面创建了文件夹以及文件。如果复制文件到upload可以看到文件列表,点击下载会显示“文件资源不存在”。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#163楼

				<span>

2018-01-22 07:48

				</span>
			

        <a id="a_comment_author_3894676" href="https://home.cnblogs.com/u/1268517/" target="_blank">漠北的仓鼠</a>

		</h4>
		<p>

给力!
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#164楼

				<span>

2018-05-05 21:15

				</span>
			

        <a id="a_comment_author_3968108" href="https://www.cnblogs.com/trphoenix/" target="_blank">tr菩提树</a>

		</h4>
		<p>

认真看了“孤傲苍狼”的教程,也认真看了所有的评论,并动手重复做了一遍,实现了上传和下载的功能,
评论中提到的listfile.jsp不能显示服务端已存在的文件列表的问题我也碰到了,经过查找的因,是jstl标签库的原因,
我的问题是因为我没有在引用:jstl.jar、standard.jar这两个JAR包后将将标签库对应的tld文件夹copy到工程的WEB-INF目录下,导至jsp找不到标签,所以才会出现空白页面,
另外有评论中提到上传的文件一会就没有了,我想这是tomcat服务器重启的原因导至文件没了吧
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#165楼

				<span>

2018-06-05 15:58

				</span>
			

        <a id="a_comment_author_3990901" href="https://home.cnblogs.com/u/1243988/" target="_blank">ES-is-gut</a>

		</h4>
		<p>

@ tr菩提树
项目的目录能给我看下吗?还有upload.jsp路径是怎么写的吗?
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#166楼

				<span>

2018-06-28 21:14

				</span>
			

        <a id="a_comment_author_4008130" href="https://home.cnblogs.com/u/1420448/" target="_blank">hi_疯子</a>

		</h4>
		<p>

博主这个系列真的是棒棒的,学到了很多东西,膜拜大神!
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#167楼

				<span>

2018-08-01 15:24

				</span>
			

        <a id="a_comment_author_4033380" href="https://www.cnblogs.com/xujianan/" target="_blank">江湖相忘</a>

		</h4>
		<p>

@ 弯弓射雕的男人
你没这个路径吧
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#168楼

				<span>

2018-09-01 00:21

				</span>
			

        <a id="a_comment_author_4055579" href="https://home.cnblogs.com/u/1358639/" target="_blank">sillyliu</a>

		</h4>
		<p>

你好,我照着你的例子跑完上传功能的代码,页面也显示文件上传成功,但是在那个upload文件里面却始终没有图片,请问这是怎么回事?谢谢。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#169楼

				<span>

2018-09-05 17:23

				</span>
			

        <a id="a_comment_author_4058925" href="https://www.cnblogs.com/homeforhzw/" target="_blank">我爱广州小蛮腰</a>

		</h4>
		<p>

remark
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#170楼

				<span>

2018-10-01 15:20

				</span>
			

        <a id="a_comment_author_4081238" href="https://home.cnblogs.com/u/1502367/" target="_blank">未输</a>

		</h4>
		<p>

回复下遇到的问题:
listfile.jsp中:
<%@taglib prefix="c" uri="http://java点sun点com/jsp/jstl/core" %>出现问题是缺少JAR包。我用的是taglibs-standard-impl-1.2.5.jar
下载有中文名文件时资源不存在问题:
将DownLoadServlet中的 fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");注释掉。应该是你的eclipse已经修改过编码了 所以在此修改编码会导致乱码导致而找不到文件。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#171楼

				<span>

2018-10-05 20:32

				</span>
			

        <a id="a_comment_author_4082401" href="https://home.cnblogs.com/u/1367164/" target="_blank">岁月BOY</a>

		</h4>
		<p>

挺好的
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#172楼

				<span>

2018-10-06 14:37

				</span>
			

        <a id="a_comment_author_4082649" href="https://home.cnblogs.com/u/1446455/" target="_blank">林景之</a>

		</h4>
		<p>

@ sillyliu
upload文件夹是指的是tomcat/webapps/项目/WEB-INF/upload文件夹
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#173楼

				<span>

2018-10-06 14:55

				</span>
			

        <a id="a_comment_author_4082656" href="https://home.cnblogs.com/u/1446455/" target="_blank">林景之</a>

		</h4>
		<p>

有大佬帮忙解释下这个问题吗,运行ListFileServlet时没问题,一访问就报500错

严重: Servlet.service() for servlet [ListFileServlet] in context with path [/FileUploadAndDownload] threw exception
java.lang.NullPointerException
at me.gacl.web.controller.ListFileServlet.listfile(ListFileServlet.java:57)
at me.gacl.web.controller.ListFileServlet.doGet(ListFileServlet.java:28)
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#174楼

				<span>

2018-10-11 17:11

				</span>
			

        <a id="a_comment_author_4086775" href="https://home.cnblogs.com/u/103710/" target="_blank">qqzj</a>

		</h4>
		<p>

文章很好,建议把路径分隔符替换为File.separator , 测试在Linux环境下创建目录有问题
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#175楼

				<span>

2018-11-30 11:22

				</span>
			

        <a id="a_comment_author_4126710" href="https://home.cnblogs.com/u/1549451/" target="_blank">JoinCB18</a>

		</h4>
		<p>

学习了!很详细!谢谢
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#176楼

				<span>

2019-01-16 14:28

				</span>
			

        <a id="a_comment_author_4164108" href="https://www.cnblogs.com/lovesufang/" target="_blank">夜雨秋池</a>

		</h4>
		<p>

@ tr菩提树
大哥, 你们用的录屏演示的软件是哪个?
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#177楼

				<span>

2019-02-07 18:28

				</span>
			

        <a id="a_comment_author_4176330" href="https://www.cnblogs.com/zhangdabai/" target="_blank">神码~</a>

		</h4>
		<p>

@ sillyliu
文件在服务器端的upload文件夹下,你看到的upload是在本地,这两个文件夹不在一个地方,这就是为什么上传的资源放在WEB-INF下面可以保证安全,因为这样你就不能直接访问了,打印出上传文件的保存路径,到磁盘中去搜索就可以了,如果要手动找,需要在项目文件路径文件夹下面的隐藏文件中去找
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#178楼

				<span>

2019-04-24 14:18

				</span>
			

        <a id="a_comment_author_4239491" href="https://home.cnblogs.com/u/1504286/" target="_blank">无法行者</a>

		</h4>
		<p>

@ 未输
下载中文名文件不存在,把那句话注释掉可以实现下载,但是下载的文件名是乱码,你又碰到吗?怎么解决的
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#179楼

				<span>

2019-04-24 18:36

				</span>
			

        <a id="a_comment_author_4239795" href="https://www.cnblogs.com/wei-shu/" target="_blank">未输</a>

		</h4>
		<p>

@ 无法行者
我没有遇到下载的文件名乱码的问题。可能是我在原作者的代码上做过改动所以没有出现这个问题。 如果在下载页面就显示乱码 应该是在ListFileServlet里面编码出错了吧。我不知道具体情况。719799183 我的qq 如果有需要 可以加我 我可以看一下。
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#180楼

				<span>

2019-04-25 15:40

				</span>
			

        <a id="a_comment_author_4240568" href="https://www.cnblogs.com/star666/" target="_blank">truestar</a>

		</h4>
		<p>

@ 恐高的鸟
用普通按钮,不要用submit类型,或者不用表单
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#181楼

				<span>

2019-04-25 17:43

				</span>
			

        <a id="a_comment_author_4240765" href="https://home.cnblogs.com/u/1504286/" target="_blank">无法行者</a>

		</h4>
		<p>

@ 未输
浏览器的问题,IE和谷歌下载的中文名文件没有乱码,火狐浏览器的下载的中文名是乱码,换个浏览器访问就行了
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#182楼

				<span>

2019-04-25 21:10

				</span>
			

        <a id="a_comment_author_4240911" href="https://www.cnblogs.com/sunshina/" target="_blank">一颜欢笑</a>

		</h4>
		<p>

@ tr菩提树
@tr菩提树
您好,我总结了问题的解决方法
1.出现listfile.jsp无法显示的问题,只要在 </c:forEach>后面加上
<a href="${pageContext.request.contextPath}/servlet/ListFileServlet">上传文件列表</a>就可以解决
2.无法下载文件的问题:在 DownLoadServlet.java文件中,把定义path的文件全部删除,直接用 String fileSaveRootPath=this.getServletContext().getRealPath("/WEB-INF/upload");中的fileSaveRootPath代替这个文件中所有用到path的地方,就解决无法下载的问题
3.无法下载中文的问题:将 DownLoadServlet.java中字符串转码的那一句话 fileName = new String(fileName.getBytes("iso8859-1"),"UTF-8");删除即可
4.tag文件中的http报错,导入相应的jar包就可以解决(jstl-1.2.jar)和(standard-1.1.2.jar)
还有什么问题不懂得,可以加我QQ交流:2764531626
评论不易,请大家顶我上去!!!!!
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#183楼

				<span>

2019-05-16 09:49

				</span>
			

        <a id="a_comment_author_4257027" href="https://www.cnblogs.com/kobe930519/" target="_blank">VinoMamba</a>

		</h4>
		<p>

博主您好,我现在想实现选取文件夹上传,请问用您这个需要怎么修改呢
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#184楼

				<span>

2019-08-01 15:44

				</span>
			

        <a id="a_comment_author_4314522" href="https://www.cnblogs.com/pgxie/" target="_blank">平谷</a>

		</h4>
		<p>

经过上面的建议,成功运行
不过如果修改了java文件,保存的东西就会被删除 (用eclipse启动Tomcat)
。。。

找到原因了,文件是保存在Tomcat的webapps目录下,而eclipse工作目录下并没有上传的这些文件。eclipse修改文件后,webapps目录下对应的项目中的文件会被修改为与eclipse中的项目一样,因为eclipse中没有这些上传的文件,所以原来保存的那些文件就被删除了。
解决方法:上传文件保存到其他的位置即可,不过这样是否规范呢
			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#185楼

				<span>

2020-03-19 15:20

				</span>
			

        <a id="a_comment_author_4526350" href="https://home.cnblogs.com/u/1665403/" target="_blank">舒克--</a>

		</h4>
		<p>

为什么点击下载会直接跳到 您要下载的资源已删除! 这是为什么?

			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#186楼

				<span>

2020-03-19 15:21

				</span>
			

        <a id="a_comment_author_4526353" href="https://home.cnblogs.com/u/1665403/" target="_blank">舒克--</a>

		</h4>
		<p>

@一颜欢笑
无法下载文件问题不能解决啊

			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#187楼

				<span>

2020-04-09 12:32

				</span>
			

        <a id="a_comment_author_4545631" href="https://home.cnblogs.com/u/1960553/" target="_blank">么么哒lala</a>

		</h4>
		<p>

问一下,怎么将上传的视频文件显示到前台并播放呢?

			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#188楼

				<span>

2020-04-09 12:33

				</span>
			

        <a id="a_comment_author_4545633" href="https://home.cnblogs.com/u/1960553/" target="_blank">么么哒lala</a>

		</h4>
		<p>

问一下,怎么将上传的视频文件显示到前台并播放呢?非常急!!!

			&nbsp;&nbsp;
回复 引用
		<p></p>
		<h4>

#189楼

    <span id="comment-maxId" style="display:none">4549126</span>
    <span id="comment-maxDate" style="display:none">2020/4/13 上午11:02:41</span>

				<span>

2020-04-13 11:02

				</span>
			

        <a id="a_comment_author_4549126" href="https://home.cnblogs.com/u/1770813/" target="_blank">风扬大侠</a>

		</h4>
		<p>

请问如果想上传至文件服务器,该怎么写?

			&nbsp;&nbsp;
回复 引用
		<p></p>

<div class="pager">
    <!-- 上一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(3, 50); return false;">
        &lt; Prev
    </a>

    <!-- 第一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        1
    </a>

    <!-- 前半部分页码 -->
    
            <a href="#!comments" onclick="commentManager.renderComments(2, 50); return false;">
                2
            </a>
            <a href="#!comments" onclick="commentManager.renderComments(3, 50); return false;">
                3
            </a>

    <!-- 当前页 -->
    <span class="current">4</span>

    <!-- 后半部分页码 -->

    
    <!-- 末尾页 -->
    

    <!-- 下一页 -->
    
</div>
posted @ 2020-05-04 21:43  弓呆的胖次  阅读(137)  评论(0编辑  收藏  举报