欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > SSM虾米音乐项目4--文件上传

SSM虾米音乐项目4--文件上传

2024/12/22 0:50:42 来源:https://blog.csdn.net/2301_81453175/article/details/144390785  浏览:    关键词:SSM虾米音乐项目4--文件上传

文件上传的配置

1. 配置Springmvc

<!--有关于文件上传的组件配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="50240000"></property>
</bean>

2. 在core中创建sys.properties属性文件

​
filePath=http://localhost:8084/ecps-file​

3. 创建属性文件读取工具类

package com.qcby.utils;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class PropReader {public static String read(String key){String result = null;Properties prop = new Properties();InputStream stream = PropReader.class.getClassLoader().getResourceAsStream("sys.properties");try {prop.load(stream);result = prop.getProperty(key);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return result;}
}

4.复制一份tomcat作为文件服务器

注意要在bin路径的上一层 

5.修改apache-tomcat-8.5.57-file 的web.xml,让其变成非只读(注意解压多层的情况

<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>readonly</param-name><param-value>false</param-value></init-param><init-param><param-name>listings</param-name><param-value>false</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

6.创建文件上传的Controller

package com.qcby.controller;import com.alibaba.fastjson.JSONObject;import com.sun.jersey.api.client.Client;import com.sun.jersey.api.client.WebResource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.UUID;import org.slf4j.Logger;import org.slf4j.LoggerFactory;
@Controller
@RequestMapping("/upload")
public class UploadController {private static final Logger logger = LoggerFactory.getLogger(UploadController.class);/*** 图片上传的具体方法* @param request* @param response* @param picfile* @param fileType* @param lastImg* @throws IOException*/@RequestMapping("/uploadFile")public void uploadFile(HttpServletRequest request, HttpServletResponse response, MultipartFile picfile, String fileType, String lastImg,String update) throws IOException {// 后续现有代码逻辑// 1.获取前端传递过来的所有有关于文件上传的参数// MultipartHttpServletRequest mr=(MultipartHttpServletRequest) request;//2.获取存储文件的相关内容// Map<String,MultipartFile> fileMap=mr.getFileMap();//3.获取文件
//        MultipartFile file=fileMap.get("picfile");//4.获取该文件的字节数组 方便上传byte[] bytes=picfile.getBytes();//5.获取文件名称String originalFilename=picfile.getOriginalFilename();//vhjbh.jpg//6.获取文件名的后缀 产生新的名字  .jpg(.exe)String suffix=originalFilename.substring(originalFilename.lastIndexOf("."));//7.定义一个新的名字  abscjsdc.jpgString fileName= UUID.randomUUID().toString();fileName=fileName+suffix;//8.上传  获取文件的上传位置  图片服务器的位置  http://localhost:8085  /pic/05.jpgString filePath="http://localhost:8084";//绝对路径 http://localhost:8085/pic/05.jpgString realPath=filePath+"/"+fileType+"/"+fileName;//相对路径 /pic/05.jpgString relativePath="/"+fileType+"/"+fileName;//9.jersy客户端进行上传Client client= Client.create();//判断if(update.equals("false")){if(lastImg!=null&&!"".equals(lastImg)){WebResource resource=client.resource(lastImg);resource.delete();}}//10.获取web资源WebResource resource=client.resource(realPath);//11.上传resource.put(bytes);//返回前端进行页面渲染JSONObject jo=new JSONObject();jo.put("realPath",realPath);jo.put("relativePath",relativePath);//响应对象的原始方式返回response.getWriter().write(jo.toString());}/*** 上传mp3文件的具体方法* @param response* @param mp3file* @param fileType* @param lastMp3* @param update* @throws IOException*/@RequestMapping("/uploadFileMp3")public void uploadFileMp3(HttpServletResponse response, MultipartFile mp3file, String fileType, String lastMp3,String update) throws IOException {// 后续现有代码逻辑
// 1.获取前端传递过来的所有有关于文件上传的参数
// MultipartHttpServletRequest mr=(MultipartHttpServletRequest) request;//2.获取存储文件的相关内容
//        Map<String,MultipartFile> fileMap=mr.getFileMap();//3.获取文件
//        MultipartFile file=fileMap.get("picfile");//4.获取该文件的字节数组 方便上传byte[] bytes=mp3file.getBytes();//5.获取文件名称String originalFilename=mp3file.getOriginalFilename();//vhjbh.jpg//6.获取文件名的后缀 产生新的名字  .jpg(.exe)String suffix=originalFilename.substring(originalFilename.lastIndexOf("."));//7.定义一个新的名字  abscjsdc.jpgString fileName= UUID.randomUUID().toString();fileName=fileName+suffix;//8.上传  获取文件的上传位置  图片服务器的位置  http://localhost:8085  /pic/05.jpgString filePath="http://localhost:8084";System.out.println(fileName);//绝对路径 http://localhost:8085/pic/05.jpgString realPath=filePath+"/"+fileType+"/"+fileName;//相对路径 /pic/05.jpgString relativePath="/"+fileType+"/"+fileName;System.out.println(relativePath);//9.jersy客户端进行上传Client client= Client.create();//判断if(update.equals("false")){if(lastMp3!=null&&!"".equals(lastMp3)){WebResource resource=client.resource(lastMp3);resource.delete();}}//10.获取web资源WebResource resource1=client.resource(realPath);//11.上传resource1.put(bytes);//返回前端进行页面渲染JSONObject jo=new JSONObject();jo.put("realPath",realPath);jo.put("relativePath",relativePath);//响应对象的原始方式返回response.getWriter().write(jo.toString());}/*** 删除服务器上文件的具体方法* @param filePath* @param response* @throws IOException*/@RequestMapping("/deleteFile")public void deleteFile(String filePath,HttpServletResponse response) throws IOException{Client client=Client.create();WebResource resource=client.resource(filePath);resource.delete();//返回响应response.getWriter().write("File deleted successfully");}}

7.前端ajax的调用和返回

function  submitFile(){var lastImg=$("#lastImg").val();alert("添加 "+lastImg);$("#location").val($("#i-file").val());$("#addAlbumForm").ajaxSubmit({url:"/upload/uploadFile",data:{fileType:"pic",update:"false"},dataType:"json",success:function (json) {uploadedImagePath=json.realPath;$("#albumImg").attr("src",json.realPath);$("#lastImg").val(json.realPath);$("#pic").val(json.relativePath);}})
}

在文件服务器hami_file中,要在加载pic图片文件和mp3音频文件,加载到服务器当中

 

这样才能使图片在访问服务器时,呈现出来

8.最后将hami_file部署到刚才新建的tomcat上,使其成功呈现

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com