通過3種方式模擬多個文件上傳
公司主營業(yè)務(wù):網(wǎng)站設(shè)計制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出平湖免費做網(wǎng)站回饋大家。
第一種方式
package com.ljq.action;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class UploadAction extends ActionSupport{
private File[] image; //上傳的文件
private String[] imageFileName; //文件名稱
private String[] imageContentType; //文件類型
public String execute() throws Exception {
ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
String realpath = ServletActionContext.getServletContext().getRealPath("/images");
System.out.println(realpath);
if (image != null) {
File savedir=new File(realpath);
if(!savedir.getParentFile().exists())
savedir.getParentFile().mkdirs();
for(int i=0;iimage.length;i++){
File savefile = new File(savedir, imageFileName[i]);
FileUtils.copyFile(image[i], savefile);
}
ActionContext.getContext().put("message", "文件上傳成功");
}
return "success";
}
public File[] getImage() {
return image;
}
public void setImage(File[] image) {
this.image = image;
}
public String[] getImageContentType() {
return imageContentType;
}
public void setImageContentType(String[] imageContentType) {
this.imageContentType = imageContentType;
}
public String[] getImageFileName() {
return imageFileName;
}
public void setImageFileName(String[] imageFileName) {
this.imageFileName = imageFileName;
}
}
第二種方式
package com.ljq.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* 使用數(shù)組上傳多個文件
*
* @author ljq
*
*/
@SuppressWarnings("serial")
public class UploadAction2 extends ActionSupport{
private File[] image; //上傳的文件
private String[] imageFileName; //文件名稱
private String[] imageContentType; //文件類型
private String savePath;
@Override
public String execute() throws Exception {
ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
//取得需要上傳的文件數(shù)組
File[] files = getImage();
if (files !=null files.length 0) {
for (int i = 0; i files.length; i++) {
//建立上傳文件的輸出流, getImageFileName()[i]
System.out.println(getSavePath() + "\\" + getImageFileName()[i]);
FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getImageFileName()[i]);
//建立上傳文件的輸入流
FileInputStream fis = new FileInputStream(files[i]);
byte[] buffer = new byte[1024];
int len = 0;
while ((len=fis.read(buffer))0) {
fos.write(buffer, 0, len);
}
fos.close();
fis.close();
}
}
return SUCCESS;
}
public File[] getImage() {
return image;
}
public void setImage(File[] image) {
this.image = image;
}
public String[] getImageFileName() {
return imageFileName;
}
public void setImageFileName(String[] imageFileName) {
this.imageFileName = imageFileName;
}
public String[] getImageContentType() {
return imageContentType;
}
public void setImageContentType(String[] imageContentType) {
this.imageContentType = imageContentType;
}
/**
* 返回上傳文件保存的位置
*
* @return
* @throws Exception
*/
public String getSavePath() throws Exception {
return ServletActionContext.getServletContext().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
}
第三種方式
package com.ljq.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
* 使用List上傳多個文件
*
* @author ljq
*
*/
@SuppressWarnings("serial")
public class UploadAction3 extends ActionSupport {
private ListFile image; // 上傳的文件
private ListString imageFileName; // 文件名稱
private ListString imageContentType; // 文件類型
private String savePath;
@Override
public String execute() throws Exception {
ServletActionContext.getRequest().setCharacterEncoding("UTF-8");
// 取得需要上傳的文件數(shù)組
ListFile files = getImage();
if (files != null files.size() 0) {
for (int i = 0; i files.size(); i++) {
FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + getImageFileName().get(i));
FileInputStream fis = new FileInputStream(files.get(i));
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) 0) {
fos.write(buffer, 0, len);
}
fis.close();
fos.close();
}
}
return SUCCESS;
}
public ListFile getImage() {
return image;
}
public void setImage(ListFile image) {
this.image = image;
}
public ListString getImageFileName() {
return imageFileName;
}
public void setImageFileName(ListString imageFileName) {
this.imageFileName = imageFileName;
}
public ListString getImageContentType() {
return imageContentType;
}
public void setImageContentType(ListString imageContentType) {
this.imageContentType = imageContentType;
}
/**
* 返回上傳文件保存的位置
*
* @return
* @throws Exception
*/
public String getSavePath() throws Exception {
return ServletActionContext.getServletContext().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
}
struts.xml配置文件
?xml version="1.0" encoding="UTF-8" ?
!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
""
struts
!-- 該屬性指定需要Struts2處理的請求后綴,該屬性的默認值是action,即所有匹配*.action的請求都由Struts2處理。
如果用戶需要指定多個請求后綴,則多個后綴之間以英文逗號(,)隔開。 --
constant name="struts.action.extension" value="do" /
!-- 設(shè)置瀏覽器是否緩存靜態(tài)內(nèi)容,默認值為true(生產(chǎn)環(huán)境下使用),開發(fā)階段最好關(guān)閉 --
constant name="struts.serve.static.browserCache" value="false" /
!-- 當struts的配置文件修改后,系統(tǒng)是否自動重新加載該文件,默認值為false(生產(chǎn)環(huán)境下使用),開發(fā)階段最好打開 --
constant name="struts.configuration.xml.reload" value="true" /
!-- 開發(fā)模式下使用,這樣可以打印出更詳細的錯誤信息 --
constant name="struts.devMode" value="true" /
!-- 默認的視圖主題 --
constant name="struts.ui.theme" value="simple" /
!--constant name="struts.objectFactory" value="spring" /--
!--解決亂碼 --
constant name="struts.i18n.encoding" value="UTF-8" /
constant name="struts.multipart.maxSize" value="10701096"/
package name="upload" namespace="/upload" extends="struts-default"
action name="*_upload" class="com.ljq.action.UploadAction" method="{1}"
result name="success"/WEB-INF/page/message.jsp/result
/action
/package
package name="upload1" namespace="/upload1" extends="struts-default"
action name="upload1" class="com.ljq.action.UploadAction2" method="execute"
!-- 要創(chuàng)建/image文件夾,否則會報找不到文件 --
param name="savePath"/image/param
result name="success"/WEB-INF/page/message.jsp/result
/action
/package
package name="upload2" namespace="/upload2" extends="struts-default"
action name="upload2" class="com.ljq.action.UploadAction3" method="execute"
!-- 要創(chuàng)建/image文件夾,否則會報找不到文件 --
param name="savePath"/image/param
result name="success"/WEB-INF/page/message.jsp/result
/action
/package
/struts
上傳表單頁面upload.jsp
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
title文件上傳/title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
/head
body
!-- ${pageContext.request.contextPath}/upload/execute_upload.do --
!-- ${pageContext.request.contextPath}/upload1/upload1.do --
!-- ${pageContext.request.contextPath}/upload2/upload2.do --
!-- --
form action="${pageContext.request.contextPath}/upload2/upload2.do" enctype="multipart/form-data" method="post"
文件1:input type="file" name="image"br/
文件2:input type="file" name="image"br/
文件3:input type="file" name="image"br/
input type="submit" value="上傳" /
/form
/body
/html
顯示頁面message.jsp
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%
%@ taglib uri="/struts-tags" prefix="s"%
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
html
head
titleMy JSP 'message.jsp' starting page/title
meta http-equiv="pragma" content="no-cache"
meta http-equiv="cache-control" content="no-cache"
meta http-equiv="expires" content="0"
/head
body
上傳成功
br/
s:debug/s:debug
/body
/html
用java代碼壓縮應(yīng)用到程序了,代碼一般是比較復(fù)雜的,對pdf文件的mate標簽優(yōu)化,這類標簽包括三類,pdf文件不是網(wǎng)頁就是個文件,何況我們可以用pdf壓縮工具壓縮,下面有個解決方法,樓主可以做參照。
1:點擊打開工具,打開主頁面上有三個功能進行選擇,我們選擇pdf文件壓縮。
2:這這個頁面中我們選擇pdf文件在這里打開,點擊“添加文件”按鈕將文件添加進來。
3:然后在頁面中點擊“開始壓縮”就可以開始壓縮文件了。
4:壓縮完成的文件頁面會顯示已經(jīng)完成。
使用FileReader類讀。
首先,實現(xiàn)上傳功能;
其次,使用Java類來讀取文本;
最后,將文本返回顯示到頁面中,頁面上可以嵌入Java代碼,輸出顯示。