发布网友 发布时间:2022-04-10 03:56
共3个回答
懂视网 时间:2022-04-10 08:18
+"‘,"+r.getIsused()+","+r.getQid()+",‘"6、在步骤一 大神写的servlet里加几句
package servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import bean.Resourse; import dao.ResourseDao; import daoImpl.ResourseDaoImpl; @WebServlet("/UploadServlet") public class UploadServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String value=""; ResourseDao rd=new ResourseDaoImpl();// new! response.setCharacterEncoding("utf-8"); //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全 String savePath = this.getServletContext().getRealPath("/teach/video"); File file = new File(savePath); //判断上传文件的保存目录是否存在 if (!file.exists() && !file.isDirectory()) { System.out.println(savePath+"目录不存在,需要创建"); //创建目录 file.mkdir(); } //消息提示 String message = ""; try{ //使用Apache文件上传组件处理文件上传步骤: //1、创建一个DiskFileItemFactory工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); //2、创建一个文件上传解析器 ServletFileUpload upload = new ServletFileUpload(factory); //解决上传文件名的中文乱码 upload.setHeaderEncoding("UTF-8"); //3、判断提交上来的数据是否是上传表单的数据 if(!ServletFileUpload.isMultipartContent(request)){ //按照传统方式获取数据 return; } //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项 List<FileItem> list = upload.parseRequest(request); for(FileItem item : list){ //如果fileitem中封装的是普通输入项的数据 if(item.isFormField()){ String name = item.getFieldName(); //解决普通输入项的数据的中文乱码问题 value = item.getString("UTF-8"); //value = new String(value.getBytes("iso8859-1"),"UTF-8"); System.out.println(name + "=" + value); }else{//如果fileitem中封装的是上传文件 //得到上传的文件名称, String filenamee=item.getName(); String filename = "http://localhost:8080/soga/teach/video/"+item.getName();//new! //添加到数据库!!! filename=checkString(filename);//new! System.out.println(filename);//new! Resourse r=new Resourse(value,filename,0,"188*******");//这里是你自己写的实体类里的构造函数 System.out.println(rd.insert(r));//new! if(filenamee==null || filenamee.trim().equals("")){ continue; } //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:a1.txt,而有些只是单纯的文件名,如:1.txt //处理获取到的上传文件的文件名的路径部分,只保留文件名部分 filenamee = filenamee.substring(filenamee.lastIndexOf("\")+1); //获取item中的上传文件的输入流 InputStream in = item.getInputStream(); //创建一个文件输出流 FileOutputStream out = new FileOutputStream(savePath + "\" + filenamee); //创建一个缓冲区 byte buffer[] = new byte[1024]; //判断输入流中的数据是否已经读完的标识 int len = 0; //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 while((len=in.read(buffer))>0){ //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\" + filename)当中 out.write(buffer, 0, len); } //关闭输入流 in.close(); //关闭输出流 out.close(); //删除处理文件上传时生成的临时文件 item.delete(); message = "文件上传成功!"; } } }catch (Exception e) { message= "文件上传失败!"; e.printStackTrace(); } request.setAttribute("message",message); request.getRequestDispatcher("/message.jsp").forward(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } public String checkString(String str){ //new! String returnStr = ""; if(str.indexOf("‘") != -1){//判断字符串是否含有单引号 returnStr = str.replace("‘", "‘‘"); str = returnStr; } return str; } }
红色的是我新添加的。??怎么没有,不过我在新加的代码后注释了://new!
三、从数据库读出url,内容显示在网页上。
这里就和json有关了。完整步骤见:jsonp跨域访问servlet接口获取json数组,并且渲染数据,前后端完整
h5上传视频到服务端,存到指定位置,url保存到数据库,最后以特定格式显示
标签:public pre resource contex row mkdir 自己 over parse
热心网友 时间:2022-04-10 05:26
我做了个例子给你热心网友 时间:2022-04-10 06:44
protected void UpImg_Click(object sender, EventArgs e)//上传图片