Загрузка файла
multipart/form-data<input type=“file”> нужно добавить.<S: Form action = "testupload" ectype = "Multipart/Form-Data"> <S: Textfield name = "username [0]" label = "user-1"> </s: textfield> <s: имя файла = "Фото" label = "Фото"> </s: файл> <s: textfield name = "unserame [1]" label = "photo"> </s: файл> <s: textfield name = "username [2]" label = "user-3"> </s: textfield> <s: file name = "photo" label = "photo"> </s: file> <s: Vade = "upe"> </s: отправить> </s: форма> <s: varue = "> </s: отправить> </s: форма>
public class uploadaction extends actionsupport { @setter @getter private list <file> photos; @Setter@getter private list <string> photoscontenttype; @Setter@getter private list <string> photosfilename; @Setter@getter private list <string> username; public String testupload () Throws ioException {System.out.println ("username:"+username); System.out.println ("Photos:"+Photos); System.out.println ("PhotoSfilename:"+PhotoSfilename); System.out.println ("Photoscontenttype:"+photoscontenttype); // Передайте файл в файл upload в сервере Root Directory // Get ServletContext ServletContext ServletContext = ServletActionContext.getServletContext (); // Получить строку реального пути realPath = ServletContext.getRealPath ("/upload"); System.out.println (RealPath); File uploadfile = new File (RealPath); // Судить, существует ли путь, если (! Uploadfile.exists ()) {// Создать uploadfile.mkdir (); } for (int i = 0; i <photos.size (); i ++) {uuid uuid = uuid.randomuuid (); Fileutils.copyfile (photos.get (i), new File (realpath + "/" + uuid + photosfilename.get (i))); } вернуть успех; }}1. С какими небольшими проблемами следует решать?
1. Имя файла имеет дубликатное имя. Как правило, UUID может быть сгенерирован перед именем файла в качестве префикса.
2. Ограничьте размер одного файла
3. Ограничить типы файлов
4. Ограничьте общий размер файла
2. Перехватчик Fileupload предоставляется в Struts2, чтобы установить эти значения атрибутов.
Перехватчик FileUpload имеет 3 свойства, которые могут быть установлены.
ПРИМЕЧАНИЕ. Существует ограничение общего размера загруженных файлов по умолчанию. Вы можете использовать константы для изменения этого предела.
<constant name="struts.devMode" value="true"/> <!-- Change the size of the total file here --> <constant name="struts.multipart.maxSize" value="2097152"/> <package name="default" namespace="/" extends="struts-default"> <interceptors> <interceptor-stack name="myInterceptor"> <receptor-ref name = "defaultStack"> <!-Изменить размер одного файла, компонент Commons FileUpload принимает загруженные файлы по умолчанию 2M-> <param name = "fileUpload.maximumSize"> 57,408 </param> <! name = "fileupload.allowedTypes"> image/pjpeg, image/gif </param> <!-расширения для загрузки файлов-> <param name = "fileupload.allowedextensions"> jpg, gif </param> </receptor-ref> </receptore-stack> </receptors> </param> </receptor-ref> name = "myInterceptor"> </default-interceptor-ref> <name = "testupload" method = "testupload"> <result name = "success">/web-inf/sevest/success.jsp </result> <result name = "input">/upload.jsp </result> </action> </package> <result name = ">/upload.jsp </result> </action> </package>
1. Сообщения об ошибках, связанные с загрузкой файлов?
1. Сообщения об ошибках, связанные с загрузкой файлов, предопределены в файле struts-messages.properties.
2. Вы можете загрузить файл ресурса, соответствующий действию в файле или переопределить сообщение об ошибке в I18N_ZH_CN.Properties Международный файл ресурса.
struts.messages.error.file.too.large = файл, который вы передаете
Файл Скачать
В некоторых приложениях может потребоваться динамически динамически отправить файл в браузер пользователя, а имя и место хранения файла непредсказуемы при программировании
Пример кода
<a href = "testdownload"> Скачать </a>
Public Class DownloadAction Extends ActionSupport {// Обычно следующие параметры будут предусмотрены в действии @setter @getter private String contentType; @Setter@getter private long contentlength; @Setter@getter private string contentdisposition; @Setter@getter private inputstream inputstream; public String testdownload () Throws filenotFoundException, unsupportEncodingexception {// get servletContext ServletContext servletContext = ServletActionContext.getServletContext (); // Получить путь файловой строки realPath = servletContext.getRealPath ("/web-inf/file/, по крайней мере, you.mp3"); // Получить поток файла inputstream = new FileInputStream (realPath); // Установить тип файла contentType = servletContext.getMimeType (realPath); // Получить длину файла contentLength = new File (realPath) .length (); // Установить имя файла string fileName = "хотя бы you.mp3"; filename = new String (fileName.getBytes ("GBK"), "iso8859-1"); ContentDisposition = "Attachment; Filename ="+filename; вернуть успех; }}<!-Загрузка файла-> <name = "testdownload" method = "testdownload"> <result type = "stream"> <!-Размер буфера файла-> <param name = "buffersize"> 2048 </param> </result> </action>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.