مشخصات مقاله
-
502
-
0.0
-
1865
-
0
-
0
آموزش File Upload Example-Java Spring
مثال file upload
مثالMVC File Upload در اسپرینگ
MVC اسپرینگ راه حلی ساده برای بارگذاری فایل ها تصویر و سایر فایل ها ارائه می دهد. مثالی ساده از بارگذاری فایل با استفاده از MVC اسپرینگ را با هم می بینیم.
فایل های jar مورد نیاز
برای اجرای این مثال نیاز به بارگذاری فایل های زیر دارید:
- فایل های jar هسته اسپرینگ
- فایل های jar وب اسپرینگ
- فایل های commons-fileupload.jar و commons-io.jar.
1-تمامی فایل های jar اسپرینگ از جمله هسته(core)، وب(web)، aop،mvc، j2ee، remoting،oxm، jdbc،orm و غیره را دانلود کنید.
2- commons-io.jarرا دانلود کنید.
3-commons-fileupload.jar را دانلود کنید.
مراحل بارگذاری فایل در MVC اسپرینگ (علاوه بر MVC)
1-فایل های commons-io و fileupload.jar را اضافه کنید.
2-ورودی CommonsMultipartResolver را در فایل spring-servlet.xml اضافه کنید.
< bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" / >
3-برای ارسال فایل یک فرم ایجاد کنید. نام متد باید "post" و متن "multiple/form-data" باشد.
< form action="savefile" method="post" enctype="multipart/form-data"> Select File: < input type="file" name="file" /> < input type="submit" value="Upload File" /> < /form>
4- از کلاس CommonsMultipartFile در کنترلر استفاده کنید.
@RequestMapping(value="/savefile",method=RequestMethod.POST)
public ModelAndView upload(@RequestParam CommonsMultipartFile file,HttpSession session){
String path=session.getServletContext().getRealPath("/");
String filename=file.getOriginalFilename();
System.out.println(path+" "+filename);
try{
byte barr[]=file.getBytes();
BufferedOutputStream bout=new BufferedOutputStream(
new FileOutputStream(path+"/"+filename));
bout.write(barr);
bout.flush();
bout.close();
}catch(Exception e){System.out.println(e);}
return new ModelAndView("upload-success","filename",path+"/"+filename);
}
5-تصویر را در JSP نمایش دهید.
< h1>Upload Success< /h1>
< img src="${filename}" />
مثال MVC file upload در اسپرینگ
دایرکتوری تصاویر"image" را ایجاد کنید. در پروژه خود دایرکتوری "images" را ایجاد کنید زیرا کد را به گونه ای می نویسیم تا تمامی فایل ها در دایرکتوری "/images" ذخیره شوند.
index.jsp
< a href="uploadform">Upload Image
Emp.java
package com.javatpoint;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloController {
private static final String UPLOAD_DIRECTORY ="/images";
@RequestMapping("uploadform")
public ModelAndView uploadForm(){
return new ModelAndView("uploadform");
}
@RequestMapping(value="savefile",method=RequestMethod.POST)
public ModelAndView saveimage( @RequestParam CommonsMultipartFile file,
HttpSession session) throws Exception{
ServletContext context = session.getServletContext();
String path = context.getRealPath(UPLOAD_DIRECTORY);
String filename = file.getOriginalFilename();
System.out.println(path+" "+filename);
byte[] bytes = file.getBytes();
BufferedOutputStream stream =new BufferedOutputStream(new FileOutputStream(
new File(path + File.separator + filename)));
stream.write(bytes);
stream.flush();
stream.close();
return new ModelAndView("uploadform","filesuccess","File successfully saved!");
}
}
< ?xml version="1.0" encoding="UTF-8" ?>
< web-app version="2.5"
3. xmlns="http://java.sun.com/xml/ns/javaee"
4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
< servlet>
< servlet-name>spring< /servlet-name>
< servlet-class>org.springframework.web.servlet.DispatcherServlet< /servlet-class>
< load-on-startup>1< /load-on-startup>
< /servlet>
< servlet-mapping>
< servlet-name>spring< /servlet-name>
< url-pattern>/< /url-pattern>
< /servlet-mapping>
< /web-app>
spring-servlet.xml
در اینجا نیاز دارید یک bean برای CommonsMultipartResolver ایجاد کنید.
< ?xml version="1.0" encoding="UTF-8" ?>
< beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xmlns:p="http://www.springframework.org/schema/p"
5. xmlns:context="http://www.springframework.org/schema/context"
6. xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
< context:component-scan base-package="com.javatpoint">< /context:component-scan>
< bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
< property name="prefix" value="/WEB-INF/jsp/">< /property>
< property name="suffix" value=".jsp">< /property>
< /bean>
< bean id="multipartResolver"
19. class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
< /beans>
uploadform.jsp
در اینجا فرم باید به این صورت باشد: method="post" و enctype="multipart/form-data"
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
< !DOCTYPE html>
< html>
< head>
< title>Image File Upload< /title>
< /head>
< body>
< h1>File Upload Example - JavaTpoint< /h1>
< h3 style="color:red">${filesuccess}< /h3>
< form:form method="post" action="savefile" enctype="multipart/form-data">
< p>< label for="image">Choose Image< /label>< /p>
< p>< input name="file" id="fileToUpload" type="file" />
< p>< input type="submit" value="Upload">< /p>
< /form:form>
< /body>
< /html>
خروجی :
برای دیدن فایل بارگذاری شده به مسیر چاپ شده روی کنسول سرور بروید.
دانلود مثال MVC file upload در اسپرینگ
ما این برنامه کاربردی را در MyEclipse IDE ساختیم که فایل های jar را ارائه می دهد. اگر از eclipse یا سایر IDE ها استفاده می کنید باید فایل های jar برای MVC اسپرینگ را بارگذاری کنید.