最近一直在做一个项目,但是有好多的东西都是第一次碰到,上网上查了很多资料,但是由于基础薄弱,只是堪堪了解一点。
我所想实现的是,在后台页面上传图片,存放路径到数据库中,而前台页面通过数据库可以查到,然后在页面显示,而上传的图片要保存到我在项目中所建的文件夹内,服务器上有临时存放的位置String root = ServletActionContext.getServletContext().getRealPath("/upload");但是服务器清除的时候会把这些上传的文件就给清除了。
我现在做到的是,通过拷贝临时文件夹内的文件,保存到我所建的文件夹内,在这里记下以防止我遗忘。所用ssi框架,struts2,spring,mybatis,数据库orca,服务器tomcat。
1,前台页面
<form action="uploads" method="post" enctype="multipart/form-data"><input type="file" name="file"> <input type="submit"></form>
发送

action请求到配置文件struts.xml里寻找

<action name="uploads" class="net.test.Controllers" method="upload"><result name="testUpload" ype="redirect">/file.jsp</result></action>
public String upload() throws IOException {// 得到文件存放的临时路径String root = ServletActionContext.getServletContext().getRealPath("/upload");System.out.println("那这个呢" + root);InputStream is = new FileInputStream(file);// 原file文件File dest = new File(root, fileFileName);// 服务器的文件OutputStream os = new FileOutputStream(dest);// FileOutputStream fot=new FileOutputStream("D://");// while(is.read()>-1){// fot.write(b);// }System.out.println("fileFileName: " + fileFileName);// 因为file是存放在临时文件夹的文件,我们可以将其文件名和文件路径打印出来,看和之前的fileFileName是否相同System.out.println("file: " + file.getName());System.out.println("file: " + file.getPath());byte[] buffer = new byte[500];int length = 0;while (-1 != (length = is.read(buffer, 0, buffer.length))) {os.write(buffer);}os.close();is.close();// 通过JVM读取java.io.tmpdir属性取得临时文件夹// File targetDir = new File(System.getProperty("java.io.tmpdir"));String root1 = this.getClass().getClassLoader().getResource("").getPath();System.out.println("打印这个" + root1);// 获得文件路径String fileuil = "D://yzg_new//youtuWeb//WebContent//upload";haha = fileuil + fileFileName;// 拷贝文件(a,b)a到bFileUtils.copyFileToDirectory(dest, new File(fileuil));// 完成了文件的拷贝工作// String file_real_path= ServletContext.getRealPath("mypath/filename");return "testUpload";}

在项目中新建upload文件夹,上传成功后刷新一下文件就会发现文件出现在目录里。
然后问题出现了,我放进数据库里因该是什么路径呢?那前台显示的呢?有经验的朋友看到的话,不妨给我讲一下,麻烦了。如果不懂得朋友有什么新收获,一块来研究一下吧。

web项目中图片上传相关推荐

  1. Web项目中文件上传Filter处理

    最近遇到一个文件上传的项目,而且在这个项目中遇到的文件上传的次数还是挺多的,所以就写了个Filter过滤器.这一个想法还是从一本书上看到的,所以原则上说并不是在下原创.不过因为补充了一点东西,所以,嘿 ...

  2. Web项目,网页上传excel文件并解析实战示例

    最近写了一个基于poi解析excel文件的工具类,所以想在web项目中测试一下,就做了这个简单的项目.本项目主要使用了 SpringMVC+RESTful+Maven的风格.适合有一定基础的人员. 源 ...

  3. 【前后端分离项目实现图片上传】

    前后端分离项目实现图片上传 后端业务代码 前端部分 实例 以样例的形式来展示:其中包括前台获得数据进行显示时图片的处理:以及上传图片时的处理: 后端业务代码 @RestController @Requ ...

  4. java读excel乱码,【java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,】java读取excel乱码...

    java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开, 1.转换格就是将受损的Excel XP簿另存格式选为SYLK.如果可以打开受件,只是不能进行各种编辑和打印操作,那 ...

  5. 如何解决markdown中图片上传的问题

    如何解决markdown中图片上传的问题 参考文章: (1)如何解决markdown中图片上传的问题 (2)https://www.cnblogs.com/yu-yi/p/9535471.html 备 ...

  6. vue中图片上传及回显

    在vue中图片上传到服务器下指定路径,并实现根据图片路径调取后台接口返回图片流在vue页面展示图片 一.图片上传 1.前台上传 <template slot-scope="scope& ...

  7. 【.net】Ueditor中图片上传和图片回显路径的设置

    在csdn六百多天的游侠今日现身江湖. 问题发生的背景: 所有项目代码中,图片上传都是固定存到一个图片专属的盘符,这样就可以整个盘符对所有图片进行备份以防丢失. 但是!有一个站点所引用的百度编辑器(主 ...

  8. Web开发中图片上传功能总结

    图片上传功能总结   1.添加文件上传所需jar包(commons-io-1.4.jar和commons-fileupload-1.1.1.jar)   2.在form表单上添加自带属性 enctyp ...

  9. web.py做图片上传网页

    简单而直接的Python web 框架:web.py 网页界面属于前端,可以用html HTML5 上传图片文件(含拖拽.预览.上传.美化) HTML 入门笔记 - 初识HTML 如何实现一个简易的图 ...

最新文章

  1. 数据集干货:一文读懂Mapsidejoin
  2. yota3墨水屏设置_【YotaPhoneYOTA3评测】外观:没有全面屏但有墨水屏_YotaPhone YOTA 3_手机评测-中关村在线...
  3. entity framework5 sqlserver2005 事务(TransactionScope)报未启用MSDTC错误解决办法
  4. php基础教程(二):基础语法
  5. linux下常用计算软件——matlab替代品
  6. Javascript中的Trait与代码重用
  7. 时间排序处理在微信小程序和真机调试没问题,发布体验版后未执行
  8. 爬虫日记(71):用OCR来对抗字体反爬
  9. Matlab求矩阵均值
  10. 黑桃spade,红桃heart,方片diamond,梅花club
  11. EchartsBar 圆柱形渐变色柱状图
  12. Unity 获取鼠标点击图片时 获取点击位置的像素
  13. fails sanity check错误的解决方法
  14. 解决Unable to create new native thread
  15. termux怎么生成木马_termux不用root将里面的文件导出,同时也可以导入!
  16. Vue知识点整理(三)- Vue脚手架(1)- 初始化Vue脚手架、简单分析Vue脚手架结构
  17. javascript打印发票
  18. 阿里P8推荐的10本Java实战书籍,Java开发进阶必备书单
  19. Manhattan Length
  20. 面向对象程序设计第四单元总结(UML系列)

热门文章

  1. 垂直网站之路:金融风暴加速向电子商务转型
  2. 快来领取哔哩哔哩855张官方壁纸(2021年02月16日更新,附爬虫工具)
  3. 怎么将图片kb压缩变小?
  4. 自动提交flag-python
  5. Android解决输入法自动弹出方法大全
  6. 【Python,迄今为止讲解的最详细的一篇
  7. 深度学习 | MATLAB Deep Learning Toolbox lstmLayer 参数设定
  8. redhat linux 批量改名,CentOS的批量改名命令 rename和prename
  9. Java通过SMS短信平台实现发短信功能
  10. 解锁 Elastic 最新的数据采集模块 - Ingest manager 和 Elastic Agent