一、隨便建立一個數據庫表
二、JSP頁面部分
1 <form id="upload-form" action="${pageContext.request.contextPath }/upload.action?id=${ADM.id}" method="post" 2 enctype="multipart/form-data" class="am-form tpl-form-line-form"> 3 <div class="am-form-group"> 4 <label for="user-name" class="am-u-sm-3 am-form-label">標題 <span 5 class="tpl-form-line-small-title">Title</span></label> 6 <div class="am-u-sm-9"> 7 <input type="text" class="tpl-form-input" id="user-name" 8 placeholder="請輸入標題文字" name="title_video"> 9 <!-- <small>請填寫標題文字10-20字左右。</small> --> 10 </div> 11 </div> 12 <!-- 13 <div class="am-form-group"> 14 <label for="user-email" class="am-u-sm-3 am-form-label">發布時間 <span 15 class="tpl-form-line-small-title">Time</span></label> 16 <div class="am-u-sm-9"> 17 <input type="text" class="am-form-field tpl-form-no-bg" 18 placeholder="發布時間" data-am-datepicker="" readonly="" name=""> 19 20 </div> 21 </div>--> 22 23 <div class="am-form-group"> 24 <label for="user-phone" class="am-u-sm-3 am-form-label">視頻類型<span 25 class="tpl-form-line-small-title">Video type</span></label> 26 <div class="am-u-sm-9"> 27 <select data-am-selected="{searchBox: 1}" style="display: none;" name="type_video"> 28 <option value="a">入職培訓</option> 29 <option value="b">公共宣傳</option> 30 <option value="c">技能提升</option> 31 <option value="d">其他</option> 32 </select> 33 34 </div> 35 </div> 36 37 <div class="am-form-group"> 38 <label class="am-u-sm-3 am-form-label">視頻簡介<span 39 class="tpl-form-line-small-title">Video introduction</span></label> 40 <div class="am-u-sm-9"> 41 <input type="text" name="introduction_video" placeholder="輸入關鍵字"> 42 </div> 43 </div> 44 45 <div class="am-form-group"> 46 <label for="user-weibo" class="am-u-sm-3 am-form-label">視頻 <span 47 class="tpl-form-line-small-title">video</span></label> 48 <div class="am-u-sm-9"> 49 50 <div id="content"> 51 52 <input type="file" name="video" id="filer_input2" multiple="multiple"> 53 54 </div> 55 56 57 </div> 58 </div> 59 <!-- <div class="am-form-group"> 60 <label for="user-weibo" class="am-u-sm-3 am-form-label">添加分類 <span 61 class="tpl-form-line-small-title">Type</span></label> 62 <div class="am-u-sm-9"> 63 <input type="text" id="user-weibo" placeholder="請添加分類用點號隔開"> 64 <div> 65 66 </div> 67 </div> 68 </div> --> 69 70 71 <div class="am-form-group"> 72 <label for="user-intro" class="am-u-sm-3 am-form-label">視頻詳細內容 <span 73 class="tpl-form-line-small-title">Video details</span></label> 74 <div class="am-u-sm-9"> 75 <textarea rows="10" id="user-intro" 76 placeholder="請輸入文章內容" name="details_video"></textarea> 77 </div> 78 </div> 79 80 <div class="am-form-group"> 81 <div class="am-u-sm-9 am-u-sm-push-3"> 82 <button type="submit" 83 class="am-btn am-btn-primary tpl-btn-bg-color-success ">提交</button> 84 </div> 85 </div> 86 </form>
三、SpringMvc配置文件(別的配置文件就省略了)
<!-- 配置掃描器 --> <context:component-scan base-package="com.hts.controller" /> <!-- 注解驅動:配置處理器映射器和適配器 --> <mvc:annotation-driven /> <!--配置靜態資源的訪問映射,此配置中的文件,將不被前端控制器攔截 --> <mvc:resources location="/js/" mapping="/js/**" /> <mvc:resources location="/css/" mapping="/css/**" /> <mvc:resources location="/fonts/" mapping="/fonts/**" /> <mvc:resources location="/images/" mapping="/images/**" /> <!-- 配置視圖解釋器ViewResolver --> <bean id="jspViewResolver" class= "org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置文件上傳的視圖解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默認編碼 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 內存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>
四、Po層,Dao層,Service層,Serviceimpl層,Controller層
public class Video { private Integer id; private String title_video;//視頻標題 private String introduction_video;//視頻簡介 private String files;//視頻文件 private String details_video;//視頻詳細內容 private String type_video;//視頻類型 }
<!-- SQL --> <insert id="insertSelective" parameterType="Video"> insert into video <trim prefix="(" suffix=")" suffixOverrides=","> <if test="title_video != null"> title_video, </if> <if test="introduction_video != null"> introduction_video, </if> <if test="files != null"> files, </if> <if test="details_video != null"> details_video, </if> <if test="type_video != null"> type_video, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="title_video != null"> #{title_video,jdbcType=VARCHAR}, </if> <if test="introduction_video != null"> #{introduction_video,jdbcType=VARCHAR}, </if> <if test="files != null"> #{files,jdbcType=VARCHAR}, </if> <if test="details_video != null"> #{details_video,jdbcType=VARCHAR}, </if> <if test="type_video != null"> #{type_video,jdbcType=VARCHAR}, </if> </trim> </insert>
//視頻 public interface VideoDao { //上傳視頻 int insertSelective(Video video); }
public interface VideoService { //上傳視頻 int insertSelective(Video video); }
@Service("VideoService") public class VideoServiceimpl implements VideoService { //自動裝配 @Autowired private VideoDao videoDao; @Override public int insertSelective(Video video) { // TODO Auto-generated method stub return videoDao.insertSelective(video); } }
@Controller public class VideoController { @Autowired private VideoService videoService; @RequestMapping("/upload.action") public String saveUpload(Video video,@RequestParam(value="video",required=false)MultipartFile multipartFile, HttpServletRequest request,HttpSession session) { // 以當前日期創建一個文件夾,避免單個文件夾中文件過多 Timestamp timestamp = new Timestamp(System.currentTimeMillis()); // 截取年月日 String substring = timestamp.toString().substring(0, 10); // 設置文件上傳存放的路徑 String path="C:/Users/SJ002/Desktop/demo/htsWeb/src/main/webapp/upload/"; String uploadPath = path + substring; System.out.println("獲取到的文件上傳地址為:" + uploadPath); // 獲取上傳文件名字 String uploadName = multipartFile.getOriginalFilename(); System.out.println("原始文件名:" + uploadName); // 利用UUID生成新的文件名字,避免原文件被覆蓋 String uuid ="HTS_"+ UUID.randomUUID().toString().replaceAll("-", ""); // 截取上傳文件的后綴 String suffix = uploadName.substring(uploadName.lastIndexOf(".")); // 拼接新的文件名字 String newUploadName = uuid + suffix; System.out.println("新的文件名:" + newUploadName); File dir = new File(uploadPath, newUploadName); // exists() 測試此抽象路徑名表示的文件或目錄是否存在。 if (!dir.exists()) { dir.mkdirs(); } //MultipartFile自帶的解析方法 try { multipartFile.transferTo(dir); } catch (IOException e) { e.printStackTrace(); } video.setFiles(newUploadName); this.videoService.insertSelective(video); Everyone ua = (Everyone) session.getAttribute("ADM"); int id=ua.getId(); return "redirect:video_Post.action?id="+id; } }