视频文件上传

<%
/**
 * 功能:添加视频信息表单
 */
%>

<%@page language="java" pageEncoding="GB2312"%>
<%@page import="epw.com.bo.user"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>

<%
user loginuser=(user)session.getAttribute("loginuser");
if(null==loginuser) response.sendRedirect("../login.jsp");
String lanmuid=StringEscapeUtils.escapeSql(request.getParameter("lanmuid"));
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>京博</title>

<link href="../css/css.css" rel="stylesheet" type="text/css" />
<script language="javascript">
    String.prototype.Trim  =  function()
    {
  return  this.replace(/(^/s*)|(/s*$)/g,""); 
 }

 function check()
 {
  if(document.all.form1.type.value.Trim()==""){
   alert("请选择所属视频类型");
   return false;
   }

  if(document.all.form1.title.value.Trim()==""){
   alert("请填写视频标题");
   return false;
   }
   if(document.all.form1.title.value.Trim().length>100){
   alert("视频标题不能超过100个汉字。");
   return false;
   }

   if(document.all.form1.file.value.Trim()==""){
   alert("请选择视频文件");
   return false;
   }
  
   if(document.all.form1.memo.value.Trim().length>200){
   alert("视频说明不能超过200个汉字。");
   return false;
   }

  document.all.form1.action="videoDataAdd_do.jsp?lanmuid=<%=lanmuid%>";
  document.form1.submit();
 }
</script>
</head>

<body>
<h3 class="subTitle">添加视频</h3>

<ul class="button">
 <li><a href="videoDataList.jsp?lanmuid=<%=lanmuid%>">返回视频专区</a></li>
</ul>

<br/>
<center>
 <font color="red">
 限制上传视频文件在100m以内,否则上传失败!
 <br/>
 上传的视频文件为wmv格式,此文件格式在保证画质的前提下适于网络带宽的传输!
 </font>
</center>
<br/>
<form id="form1" name="form1" action="" method="post" enctype="multipart/form-data">
 <table width="90%" border="0" align="center" cellpadding="0" class="table2" cellspacing="0">
   <tr>
         <th width="15%" align="right">视频类型</th>
         <td colspan="3">
          <select name="type" id="type">
        <option value="">请选择所属视频类型</option>
        <option value="1">形象宣传</option>
        <option value="2">媒体聚焦</option>
        <option value="3">文艺专题</option>
       </select>
         </td>
     </tr>
     <tr>
         <th width="15%" align="right">视频标题</th>
         <td colspan="3"><input name="title" type="text" class="input1" id="title"/></td>
     </tr>
     <tr>
         <th align="right">视频文件</th>
         <td colspan="3">
           <input type="file" name="file" class="input1" οnkeydοwn="return false"   οncοntextmenu="return false"/>
         </td>
     </tr>
     <tr>
         <th width="15%" align="right">视频说明</th>
         <td colspan="3"><input name="memo" type="text" class="input1" id="memo"/></td>
     </tr>
  <tr>
   <td colspan="4">
    <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="yesno">
           <tr>
               <td height="50" align="center">
                <input type="button" name="Submit1" value="确定" οnclick="check()"/>
                <input type="reset" name="Submit2" value="清空" />
               </td>
           </tr>
       </table>
   </td>
  </tr>
 </table>
</form>
</body>

</html>

<%
/**
 * 功能:执行添加视频信息
 */
%>

<%@page language="java" pageEncoding="GB2312"%>

<%@page import="java.util.Date"%>
<%@page import="java.util.List"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.regex.Pattern"%>
<%@page import="java.util.regex.Matcher"%>
<%@page import="java.io.File"%>
<%@page import="java.io.IOException"%>
<%@page import="java.text.*"%>

<%@page import="org.apache.commons.fileupload.*"%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>

<%@page import="epw.com.service.electronicDataService"%>

<%
//过滤传入参数字符串
String lanmuid=StringEscapeUtils.escapeSql(request.getParameter("lanmuid"));
//System.out.println(lanmuid);

//上传视频文件
String fieldName="";
String fieldType="";
String fieldTitle="";
String fieldMemo="";
String name="";
long size=0;
String fileNameReal="";
String finalName="";
String savePath="";
try
{
 DiskFileUpload fu = new DiskFileUpload();
 //设置允许用户上传文件大小,单位:字节,这里设为100m
 fu.setSizeMax(100*1024*1024);
 //设置最多只允许在内存中存储的数据,单位:字节,这里设为10m
 fu.setSizeThreshold(10*1024*1024);
 //设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
 fu.setRepositoryPath("C://WINDOWS//Temp//");
 //开始读取上传信息
 List fileItems = fu.parseRequest(request);
 //依次处理每个上传的文件
 Iterator iter = fileItems.iterator();
 //正则匹配,过滤路径取文件名
 String regExp=".+(.+)$";
 Pattern p = Pattern.compile(regExp);
 //过滤掉的文件类型
 String[] errorType={".exe",".com",".cgi",".asp"};
 while(iter.hasNext())
 {
  FileItem item = (FileItem)iter.next();
  
  if(item.isFormField())
  {
   //获得表单域的名字
   fieldName = item.getFieldName();
   //如果表单域的名字是type
   if(fieldName.equals("type"))
    fieldType = item.getString();
   //如果表单域的名字是title
   if(fieldName.equals("title"))
    fieldTitle = new String(item.getString().getBytes("ISO-8859-1"),"GB2312");
   //如果表单域的名字是memo
   if(fieldName.equals("memo"))
    fieldMemo = new String(item.getString().getBytes("ISO-8859-1"),"GB2312");
  }
 
  if(!item.isFormField())
  {
   name = item.getName();
   size = item.getSize();
   if((name==null||name.equals("")) && size==0)
    continue;
   Matcher m = p.matcher(name);
   boolean result = m.find();
   if(result)
   {
    for(int temp=0;temp<errorType.length;temp++)
    {
     if(m.group(1).endsWith(errorType[temp]))
     {
      throw new IOException(name+": wrong type");
     }
    }
   DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
   String date = df.format(new Date());
   fileNameReal=date+m.group(1);
   finalName=date+Math.round(Math.random()*10000)+fileNameReal.substring(fileNameReal.indexOf("."));
   //保存上传的文件到指定的目录
   savePath=getServletContext().getRealPath("//upload//electronicData")+"//"+finalName;
   item.write(new File(savePath));
   //out.print(finalName+size);
   }
   else
   {
    throw new IOException("fail to upload");
   } 
  }
 }
}
catch(IOException e)
{
 out.println(e);
}
catch(FileUploadException e)
{
 out.println(e);
}
catch(Exception e)
{
 e.printStackTrace();
}

//写数据库
electronicDataService electronicDataService=new electronicDataService();
int resutl=electronicDataService.addVideoData(fieldType,fieldTitle,savePath,fieldMemo);
String message="";
if(resutl==-1)
{
 message="添加失败!";
}
else
{
 message="添加成功!";
}
String gotopage="videoDataList.jsp?lanmuid="+lanmuid;
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>京博</title>

<link href="../css/css.css" rel="stylesheet" type="text/css" />
</head>

<body>

<jsp:forward page="../message.jsp">
 <jsp:param name="gotopage" value="<%=gotopage%>" />
 <jsp:param name="message" value="<%=message%>" />
</jsp:forward>

</body>

</html>
//

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
作为一个AI语言模型,我无法提供视频教程,但我可以为您提供文字教程。 Spring Boot框架提供了丰富的工具来处理文件上传。在本文中,我们将学习如何实现文件上传。 1. 添加依赖 在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> ``` 2. 配置文件上传 在application.properties文件中添加以下配置: ``` spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 这将启用文件上传,并限制文件大小为10MB。 3. 创建文件上传控制器 创建一个控制器类,例如FileUploadController.java,用于处理文件上传: ``` @RestController public class FileUploadController { @PostMapping("/upload") public String handleFileUpload(@RequestParam("file") MultipartFile file) { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); try { if (fileName.contains("..")) { throw new FileUploadException("Invalid file name: " + fileName); } FileUploadUtil.saveFile(file); } catch (FileUploadException ex) { return ex.getMessage(); } return "File uploaded successfully: " + fileName; } } ``` 这个控制器类有一个POST方法,它接受一个MultipartFile类型的参数,并使用FileUploadUtil.saveFile()方法将文件保存到磁盘上。 4. 创建文件上传工具类 创建一个名为FileUploadUtil.java的工具类,用于保存文件: ``` public class FileUploadUtil { public static void saveFile(MultipartFile file) throws FileUploadException { try { String fileName = StringUtils.cleanPath(file.getOriginalFilename()); File dest = new File("uploads/" + fileName); FileUtils.copyInputStreamToFile(file.getInputStream(), dest); } catch (IOException ex) { throw new FileUploadException("Failed to save file: " + ex.getMessage()); } } } ``` 这个工具类使用Apache Commons IO库中的FileUtils.copyInputStreamToFile()方法将文件保存到uploads目录中。 5. 创建一个上传表单 在HTML文件中创建一个表单,用于上传文件: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>File Upload</title> </head> <body> <form method="POST" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"><br><br> <input type="submit" value="Upload"> </form> </body> </html> ``` 这个表单使用POST方法将文件上传到/upload路径。 6. 运行应用程序 现在,您可以运行应用程序并尝试上传文件。打开浏览器,并访问http://localhost:8080/upload,选择一个文件并上传它。 7. 验证文件上传 验证文件是否已成功上传到uploads目录中。 总结 在本文中,我们学习了如何使用Spring Boot框架实现文件上传。我们添加了必要的依赖项,配置了文件上传,创建了文件上传控制器和工具类,并创建了一个上传表单来测试文件上传
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值