-
2019-11-21 10:07:53
@RequestMapping(value = "/mi/upload", method = RequestMethod.POST) @ResponseBody public MyResponse upload(HttpServletRequest request, @RequestParam("file") MultipartFile file) { long size = file.getSize(); if(size>1024*1024*2){ throw new MyException("图片大小不能超过2M"); } String classpath = this.getClass().getResource("/").getPath().replaceFirst("/", ""); //String webappRoot = classpath.replaceAll("WEB-INF/classes/", ""); //可以自定义路径 File dir = new File(classpath+"/images"); if(!dir.isDirectory()){ dir.mkdirs(); } String accessUrl = "/images/"+System.currentTimeMillis()+file.getName()+".jpg"; try { File file1 = new File(classpath+accessUrl); file.transferTo(file1); } catch (IOException e) { e.printStackTrace(); throw new MyException("上传失败"); } }
2.读取本地文件内容
// String filepath = "E:/upload/test.txt";//E盘下的文件夹的目录 // File targetFile = new File(filepath);//File类型可以是文件也可以是文件夹 // // // File targetFile = new File(path); // if (!targetFile.exists()) { // targetFile.mkdirs(); // } // //保存到本地的文件 // // File saveFile = new File(path + fileName); // FileInputStream fileInput = null; // String rs = ""; // try { // // 通过File对象构建一个流对象 // fileInput = new FileInputStream(targetFile); // // 读取数据,并将读取的数据存储在数组中 // byte[] data = new byte[(int) targetFile.length()]; // // 读取流中的第一个字节数据 // int n = fileInput.read(); // // 读取的游标位置 // int i = 0; // // 判断是否读到最后一个字符 // while (n != -1) { // data[i] = (byte) n; // i++; // n = fileInput.read(); // } // rs = new String(data, "GBK"); // System.out.println(rs); // } catch (FileNotFoundException e) { // e.printStackTrace(); // } catch (IOException e) { // e.printStackTrace(); // } // try { // file.transferTo(targetFile); // return new MyResponse(rs); // } catch (Exception e) { // e.printStackTrace(); // return new MyResponse(ResponseCode.OPERATE_FAIL, e.getMessage()); // }
更多相关内容 -
Web项目如何上传图片
2021-03-18 21:02:47传图片controller层该干的事 public String add(Category c,HttpSession session,UploadedImageFile uploadedImageFile)throws IOException{ categoryService.add(c); //保存c对象 File imageFolder = new File...传图片controller层该干的事
public String add(Category c,HttpSession session,UploadedImageFile uploadedImageFile)throws IOException{ categoryService.add(c); //保存c对象 File imageFolder = new File(session.getServletContext().getRealPath("img/category")); //通过session获取ServletContext,再通过getRealPath定位存放图片的路径 File file = new File(imageFolder,c.getId()+".jpg"); if(!file.getParentFile().exists()) file.getParentFile().mkdirs(); //如果不存在就造一个 uploadedImageFile.getImage().transferTo(file); //保存再上述指定位置 BufferedImage img = ImageUtil.change2jpg(file); //确保传过来的是jpg ImageIO.write(img, "jpg", file); return "redirect:/admin_category_list"; }
-
web项目上传图片需要刷新文件夹才能显示(指定读取硬盘上任意位置图片)
2020-05-01 00:19:31问题:上传图片到指定的目录,比如上传到项目文件夹中E:\briup\workspace\Buddhism\WebContent\userImage,但是上传呢完毕之后需要手动刷新该文件夹,网页上才能正常显示图片。 原因:项目部署在默认的工作空间下,...问题:上传图片到指定的目录,比如上传到项目文件夹中E:\briup\workspace\Buddhism\WebContent\userImage,但是上传呢完毕之后需要手动刷新该文件夹,网页上才能正常显示图片。
原因:项目部署在默认的工作空间下,不是Tomcat安装目录下
解决办法:
1.去tomcat的安装路径找到配置文件,然后修改
找到server.xml进行如下配置:
<Context path="/image" docBase="C:\picture" debug="0" reloadable="true" crossContext="true" />
2.去eclipse中,在下方找到你运行项目的tomcat服务器,点击,会出现一个页面,该页面可以看到Overview/Modules3.点击Modules,点击Add External Web Module,然后输入你存储图片的路径,比如c:/picture,然后重启服务器。
然后在浏览器输入你的ip+设置的路径别称+图片,比如我设置的D:\MyWorkspace\health\web\upload\2020别称为/health/upload/2020/,我的图片是aa123.png;
那我访问的时候就可以是ip+/health/upload/2020/aa123.png
-
解决web项目上传图片不能及时回显的问题
2020-05-19 09:11:14解决web项目上传图片不能及时回显的问题遇到问题解决办法简单实例OSS配置属性(yml文件)OSS配置属性实体类自定义工具类(上传、删除图片)图片上传正常如果你也是相关问题,并通过此方法解决,记得给我点个赞!...解决web项目上传图片不能及时回显的问题
遇到问题
在以前接触的web项目凡是涉及到需要上传图片,以及上传图片后需要及时回显的问题时,我的解决办法总是很死板。就是在项目中添加资源的本地映射路径,又因为在IDEA中通过
String path = System.getProperty("user.dir");
获取项目相对根路径后图片依然不能及时回显(有知道具体原因的望告知),所以只好将路径写死,eg:registry.addResourceHandler("/userImage/**").addResourceLocations("file:D:\\****\\****\\workspace\\download\\usedweb\\src\\main\\resources\\static\\userImage\\");
这样做的坏处就是当我们需要将项目部署到服务器上,如阿里云服务器时,想要项目跑通必须要重新配置资源的映射路径,非常的麻烦。
解决办法
无意中看到阿里云的OSS(Object Storage Service)对象存储服务,是阿里云提供的海量、安全、低成本、高可靠的云存储服务,你可以使用阿里云提供的 API、SDK 接口或者 OSS 迁移工具轻松地将海量数据移入或移出阿里云 OSS。OSS 具有与平台无关的 RESTful API 接口,你可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。简单来说就是你将你的资源文件如图片、视频等等上传到阿里提供的云储存中,然后按照他的规则通过url调用你上传的资源,由于储存在云上,所以不涉及本地的资源映射,也就没有了上面所说的问题。
简单实例
OSS配置属性(yml文件)
userImage: endpoint: oss-cn-chengdu.aliyuncs.com keyid:你自己的accesskey keysecret: 你自己的accesskeySec bucketname: sec-deal-res filehost: userImage default-avatar: http://sec-deal-res.oss-cn-chengdu.aliyuncs.com/userImage/avatar/default.jpg protocol: http:// no-pro-avatar: http://sec-deal-res.oss-cn-chengdu.aliyuncs.com/userImage/404pro.jpg
OSS配置属性实体类
/** * OSS配置属性实体类 * Created by Chenge on 2020.3.18 12:15 */ @Component public class AliConfEntity { @Value("${userImage.endpoint}") private String endpoint; @Value("${userImage.keyid}") private String keyid; @Value("${userImage.keysecret}") private String keysecret; @Value("${userImage.filehost}") private String filehost; @Value("${userImage.bucketname}") private String bucketname; @Value("${userImage.default-avatar}") private String defaultAvatar; @Value("${userImage.protocol}") private String protocol; @Value("${userImage.no-pro-avatar}") private String noProAvatar; getter...setter...toString }
自定义工具类(上传、删除图片)
@Autowired private AliConfEntity aliConfEntity; public String upload(MultipartFile file, String fileName){ if(file == null){ return null; } OSSClient client = new OSSClient(aliConfEntity.getEndpoint(),aliConfEntity.getKeyid(),aliConfEntity.getKeysecret()); if (!client.doesBucketExist(aliConfEntity.getBucketname())){ // 判断容器是否存在,不存在就创建 client.createBucket(aliConfEntity.getBucketname()); CreateBucketRequest request = new CreateBucketRequest(aliConfEntity.getBucketname()); // 设置权限(公开读) request.setCannedACL(CannedAccessControlList.PublicRead); client.createBucket(request); } //开始上传文件 String basePath = aliConfEntity.getFilehost()+fileName; PutObjectResult result = null; try { result = client.putObject(new PutObjectRequest(aliConfEntity.getBucketname(),basePath,new ByteArrayInputStream(file.getBytes()))); } catch (IOException e) { e.printStackTrace(); } client.setBucketAcl(aliConfEntity.getBucketname(),CannedAccessControlList.PublicRead); if (result != null){ return "success"; } return "error"; } /** * 删除oss上面的文件 * @param fileName 文件名,应该时文件路径,从filehost开始 */ public void dealFile(String fileName){ OSSClient client = new OSSClient(aliConfEntity.getEndpoint(),aliConfEntity.getKeyid(),aliConfEntity.getKeysecret()); client.deleteObject(aliConfEntity.getBucketname(),fileName); }
图片上传正常
如果你也是相关问题,并通过此方法解决,记得给我点个赞!!!
-
IDEA中web项目上传图片遇到页面不回显问题(已解决)
2021-05-08 10:50:45最近做一个在线视频网站的小项目,由于功能中涉及到视频文件和图片的上传功能,其中涉及到一个图片和视频文件上传后回显的问题。图片和视频文件上传工具类为存储到tomcat的webapp下相应的存放img和video的目录文件夹... -
web项目上传图片到项目中,而不是Tomcat中,也不是eclipse的工作目录
2020-04-13 16:02:09 -
Web项目中图片上传之后,需刷新项目才能在网页上看到图片解决方法
2019-06-04 20:10:35在一个网页中添加了一个上传图片的功能,但是上传之后图片是不显示的,在eclipse上刷新一下项目,图片才会显示。如果不刷新的话,我们直接看项目下我们指定的上传图片存入的文件夹里面也是没有图片的。很明显就是一... -
Web开发中图片上传功能总结
2020-10-02 19:54:12图片上传功能总结 1、添加文件上传所需jar包(commons-io-1.4.jar和commons-fileupload-1.1.1.jar)  &... -
spring boot thymeleaf 图片上传web项目根目录操作步骤
2020-08-27 19:22:37主要介绍了spring boot thymeleaf 图片上传web项目根目录步骤,本文给大家提到了thymeleaf的基础知识,需要的朋友可以参考下 -
WebApi2 文件图片上传与下载功能
2021-01-03 04:44:30Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一、项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交。具体的跨域配置方式如下,了解的朋友请自行略过。 跨域配置:... -
tomcat部署web项目 上传图片呢浏览器无法加载图片
2019-05-18 10:24:28因为是自己电脑部署,所以图片存储路径是自己本地的某个盘,然后将项目部署到tomcat下webapps的ROOT下,因为tomcat加载的是编译好的文件,此时还需要修改tomcat的配置文件 (箭头备注可以不用看,那是自己的东西) (docBase... -
Javaweb应用图片文件上传并预览,数据库存储路径——ssm实现
2019-02-20 23:31:37Javaweb应用图片文件上传并预览,Tomcat服务器存储至磁盘,数据库mysql存储其图片路径 -
web项目上传图片需要刷新文件夹才能显示
2018-05-26 23:33:54问题:上传图片到指定的目录,比如上传到项目文件夹中E:\briup\workspace\Buddhism\WebContent\userImage,但是上传呢完毕之后需要手动刷新该文件夹,网页上才能正常显示图片。 原因:项目部署在默认的工作空间下,... -
web大文件上传、秒传、分块上传演示c#.net
2019-01-10 10:54:20使用webupload实现了在C# .net项目中的断点续传演示(绝对不亏的,现在.net中webupload服务端好多都不完整,我这个是自己写完用到项目中的,比较稳定,虽然代码比较初级,后面也没整理) 演示地址:... -
web项目处理图片上传
2018-08-02 15:55:07package ... import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.config.annota... -
java web应用用户上传图片的存储地址
2021-02-13 00:07:12每次使用maven tomcat:redeploy以后,这个...这样就把工程和用户上传图片分离了,以后在redeploy时也不用预先备upload目录,然后再拷贝回去,因而在web应该更新时比较方便些。此外,还想改变文件路径被硬编码到java... -
Android客户端+web服务端实现图片上传到服务器
2018-10-30 13:51:44该代码分为客户端和服务端,客户端实现拍照后照片的上传,服务端接收上传至服务器的照片并显示,代码正确无误,可以正常运行! -
Web项目,图片文件上传之后,需刷新项目才能在网页上显示(Eclipse下的项目文件更新后,自动刷新目录方法)
2021-04-24 09:49:48Web项目中的图片文件上传之后,需要刷新项目才能在网页上显示 在开发java web项目时,偶尔会需要上传文件,当文件上传后,eclipse需要手动刷新,文件才会出现在项目目录下。 遇到这种情况,解决办法有两个: 1、设置... -
web项目中图片上传
2016-11-28 14:48:32我所想实现的是,在后台页面上传图片,存放路径到数据库中,而前台页面通过数据库可以查到,然后在页面显示,而上传的图片要保存到我在项目中所建的文件夹内 -
web项目中,上传的图片无法实时更新的问题
2019-03-11 08:51:10web项目中,上传的文件有时会不能实时更新,必须要先更新图片文件夹,并再次刷新才可以显示。 解决方法:改变图片文件的路径,将绝对路径改为相对路径 @Controller @RequestMapping("/user") public class... -
由web项目中上传图片所引出的路径问题
2016-11-22 20:30:27由web项目中上传图片所引出的路径问题 -
web项目上传图片到指定目录,不放在war包里,防止覆盖。
2018-11-30 12:04:241,上传相关的配置信息 2,controller获取图片信息 @RequestMapping("/imagelist.json") @ResponseBody public Object uploadImage(HttpServletRequest request, HttpServletResponse response, @... -
web项目获取前端用户上传的图片并保存
2020-06-08 10:31:18web项目获取用户上传的图片 我写的这些都是我在日常学习中遇到的问题,希望能对大家有帮助,也当做给自己的一份笔记。我自己也是网上找的一些资料学的可能不太好,如有错误,仅供参考 1.首先我们要使我们的web项目... -
java web 图片上传
2020-12-17 19:46:50文件图片的上传需要用到commons-fileupload-1.4.jar和commons-io-2.6.jar两个包 数据库值保存的是图片的路径实际图片在项目中 实体类 public class User { private int id; private String name; private ... -
java web项目中如何将上传图片的路径存到mysql?希望有实际代码例子
2017-04-14 03:24:22java web项目中如何将上传图片的路径存到mysql?希望有实际代码例子,感谢! -
关于springboot中web项目,上传图片和文件后页面访问不到
2021-11-14 13:05:52上传完图片并不会保存到项目的/images/firstPicture 文件夹里, 而是会保存到tomcat服务器下 图片路径地址 C:\Users\你的用户名\AppData\Local\Temp\tomcat-docbase.8080.100855160746792444\images\firstPicture\... -
关于如何将java web项目上传至腾讯云服务器
2021-03-14 20:40:27步骤流程:1,学生申请腾讯云(需要...配置mysql4,将java web的项目打包成war包5,将war包上传至tomcat的web-inf的文件夹下,tomcat会自动解压(如果没有重启tomcat试试)6,如果用到了数据库还需要配置一下mysql的表以及j... -
JavaWeb上传图片到项目目录并将相对路径保存到数据库 踩坑
2020-08-11 14:32:53前端使用from表单提交图片 HTML <form action="${pageContext.request.contextPath}/pictureServlet" method="post" enctype="multipart/form-data"> <input id="input" type="file" name="file"> -
javaweb实际项目开发中上传文件图片的实现(代码)
2010-11-22 09:06:17javaweb 开发中上传图片,文件的实现