直播网站源码,上传图片到项目目录并将相对路径保存到数据库
直播网站源码,上传图片到项目目录并将相对路径保存到数据库
HTML
1 | <form action= "${pageContext.request.contextPath}/pictureServlet" method= "post" enctype= "multipart/form-data" ><br> <input id= "input" type= "file" name= "file" ><br> <button id= "btn" type= "submit " >提交</button><br></form><br> <img id= "img" src= "" ><br> |
JS实现预览
此时的预览所获得的路径不能传到后台操作,是blob:http…格式,下面会说
1 | <br>$( "#a" ).change( function (e) {<br> console.log(e)<br> reader.readAsDataURL(this.files[0]);<br> reader.onload = function (e){<br> console.log(e.target.result);<br> document.getElementById( "img" ).src = e.target.result;<br> }<br> })<br> |
Servlet
1 | import org.apache.commons.fileupload.FileItem;<br>import org.apache.commons.fileupload.FileUploadException;<br>import org.apache.commons.fileupload.disk.DiskFileItemFactory;<br>import org.apache.commons.fileupload.servlet.ServletFileUpload;<br>import javax.net.ssl.HttpsURLConnection;<br>import javax.servlet.ServletException;<br>import javax.servlet.annotation.WebServlet;<br>import javax.servlet.http.HttpServlet;<br>import javax.servlet.http.HttpServletRequest;<br>import javax.servlet.http.HttpServletResponse;<br>import javax.servlet.http.HttpSession;<br>import java.io.File;<br>import java.io.IOException;<br>import java.io.PrintWriter;<br>import java.util.List;<br>@WebServlet( "/pictureServlet" )<br> public class PictureServlet extends HttpServlet {<br> protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br> request.setCharacterEncoding( "utf-8" );<br> response.setContentType( "text/plain;charset=utf-8" );<br> //此处将新建的文件直接保存到项目的绝对路径中。File没有读写能力。<br> File savePath = new File("E:\\javaEE\\Project\\Picture\\web\\images");<br> DiskFileItemFactory factory = new DiskFileItemFactory();//jar包的类<br> ServletFileUpload upload = new ServletFileUpload(factory);//jar包的类<br> try {<br> List<FileItem> items = upload.parseRequest(request);<br> //将前端的表单数据封装成list。<br> //form表单必须加enctype="multipart/form-data",在使用包含文件上传控件的表单时,必须使用该值。<br> for (FileItem item:items){<br> if(item.isFormField()){<br>//说明普通表单项<br> }else {<br> //说明上传文件项<br> //获取上传文件的名称<br> String name = item.getName();<br> //获取相对路径<br> String path = request.getContextPath()+"/images/"+name;<br> //将相对路径保存到数据库<br> Test test = new Test();<br> test.update(path);<br>//使用绝对路径完成文件上传<br> item.write(new File(savePath,name));<br> //删除临时文件<br> item.delete();<br> }<br> }<br> } catch (FileUploadException e) {<br> e.printStackTrace();<br> } catch (Exception e) {<br> e.printStackTrace();<br> }<br>}<br> protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {<br> this.doPost(request,response);<br> }<br>} |
以上就是直播网站源码,上传图片到项目目录并将相对路径保存到数据库, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-05-18 在线直播系统源码,多图加载成动画的形式如何实现
2022-05-18 短视频平台源码,界面支持上下、左右的任意滑动
2022-05-18 短视频系统源码,动态内容实现长按复制粘贴