導航:首頁 > 版本升級 > sstruts2上傳下載文件

sstruts2上傳下載文件

發布時間:2023-05-09 23:48:30

A. 我用struts2做的上傳文件功能,但當文件超過2G時頁面出現錯誤,這個有什麼辦法解決么

struts配置文件里有來個上傳大自小的常量可以配
可以配置default.properties文件,也可以直接配xml常量
常量名是struts.multipart.maxSize
值的話你自己換算就好了 1K*1024*1024什麼什麼的自己乘完放到value里

B. 用Struts2.0+Spring2.0+hibernate3.1怎樣實現文件的上傳和下載

apache上common項目中有fileUpload這個組件,希望對你有用

C. jsp 文件上傳和下載

1.jsp頁面
<s:form action="fileAction" namespace="/file" method="POST" enctype="multipart/form-data">
<!-- name為後台對應的參數名稱 -->
<s:file name="files" label="file1"></s:file>
<s:file name="files" label="file2"></s:file>
<s:file name="files" label="file3"></s:file>
<s:submit value="提交" id="submitBut"></s:submit>
</s:form>
2.Action
//單個文件上傳可以用 File files,String filesFileName,String filesContentType
//名稱要與jsp中的name相同(三個變數都要生成get,set)
private File[] files;
// 要以File[]變數名開頭
private String[] filesFileName;
// 要以File[]變數名開頭
private String[] filesContentType;

private ServletContext servletContext;

//Action調用的上傳文件方法
public String execute() {
ServletContext servletContext = ServletActionContext.getServletContext();
String dataDir = servletContext.getRealPath("磨脊塵/file/upload");
System.out.println(dataDir);
for (int i = 0; i < files.length; i++) {
File saveFile = new File(dataDir, filesFileName[i]);
files[i].renameTo(saveFile);
}
return "success";
}
3.配置上傳文件臨時文件夾(在struts.xml中配置)
<constant name="struts.multipart.saveDir" value="c:/temp"/>
文件下載
1.下載的url(到Action)
<a href="${pageContext.request.contextPath}/file/fileAction!down.action">下載</a>
2.struts.xml配置
<package name="file" namespace="野神/file" extends="struts-default">
<action name="fileAction" class="com.struts2.file.FileAction">
<!-- 下載文件配置 -->
<!--type 為 stream 應用 StreamResult 處理-->
<result name="down" type="stream">
<!--
不管實際類型,待下載文件 ContentType 統一指定為 application/octet-stream
默認為 text/plain
-->
<param name="contentType">application/octet-stream</param>
<!--
默認就是 inputStream,它將會指示 StreamResult 通過 inputName 屬性值的 getter 方法,
比如這里就是 getInputStream() 來獲取下載文件的內容,意味著瞎禪你的 Action 要有這個方法
-->
<param name="inputName">inputStream</param>
<!--
默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文
件保有存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,
這里使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName() 獲得文件名
-->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<!-- 輸出時緩沖區的大小 -->
<param name="bufferSize">4096</param>
</result>
</action>
</package>
3.Action
//Action調用的下載文件方法
public String down() {
return "down";
}

//獲得下載文件的內容,可以直接讀入一個物理文件或從資料庫中獲取內容
public InputStream getInputStream() throws Exception {
String dir = servletContext.getRealPath("/file/upload");
File file = new File(dir, "icon.png");
if (file.exists()) {
//下載文件
return new FileInputStream(file);

//和 Servlet 中不一樣,這里我們不需對輸出的中文轉碼為 ISO8859-1
//將內容(Struts2 文件下載測試)直接寫入文件,下載的文件名必須是文本(txt)類型
//return new ByteArrayInputStream("Struts2 文件下載測試".getBytes());
}
return null;
}

// 對於配置中的 ${fileName}, 獲得下載保存時的文件名
public String getFileName() {
String fileName ="圖標.png";
try {
// 中文文件名也是需要轉碼為 ISO8859-1,否則亂碼
return new String(fileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
return "icon.png";
}
}

D. struts2如何同時上傳文件以及獲得表單數據

事實上這根本抄不需要什麼其他配置操作,因為這是Struts2,而不是原生Servlet,在Struts2中,攔截器會將request中的表單數據(或者文件格式的數據)都和action類中的屬性名稱一一對應的注入值(包括文件數據)。所以你需要做的,其實只是在jsp頁面(或html)中加入一個file類型的input標簽,名稱記住(比如為photo),然後在action類中加一個File類型(java.io.File)欄位,此欄位必須和剛剛的input標簽name屬性一致,即photo(private File photo;)。最後,需要注意的是,當你妄圖從網頁上傳一個文件類型的表單時,必須將包圍它的form類將enctype="multipart/form-data" method="post"加上,即method必須為post,且enctype,也就是表單數據類型,必須為二進制的。

E. 我用struts2做文件上傳,傳到伺服器的始終是tmp臨時文件,我想要真正的文件,請怎麼解決

struts只能幫你上傳成文件流,你的action有個file吧,要想生成真正地文件,還得把File裝換成FileOutputStream,然後輸出到你真正的文件

F. java Struts2實現文件的下載,彈出下載框時默認文件名字總是我的action名,無法讀取配置

name 要變成全局變數 要有set的方法 這樣配置知道 怎麼拿值。

G. struts2上傳文件,第一次上傳成功,第二次上傳失敗

你這個問題後來是怎麼解決的啊?

H. 怎麼使用struts2,jar包已下載下來,怎麼導入到哪裡

我用的是struts2.2.1.1-all.zip(不管用struts2的哪個版本,道理都一樣,找對應的包就行了)
例如你建一Web Project,名為Struts2
導入項目所需要的jar包,放入/Struts2/WebRoot/WEB-INF/lib下面
方法一:
在struts2存放目錄(以我的舉例說明)
F:\JavaWeb教程\ssh-jar\struts-2.2.1.1-all\struts-2.2.1.1\lib下面找到以下包
commons-fileupload-1.2.1.jar//文件上傳時用的,為了以後用到,最好加入
commons-io-1.3.2.jar//同上
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-core-2.2.1.1.jar
xwork-core-2.2.1.1.jar
共8個包,將其復制到/Struts2/WebRoot/WEB-INF/lib下面
方法二:(不用復制,導入法)
(1).右擊項目名稱Struts2-->Build Path-->Configure Build Path...-->打開一對話框
(2).選擇左邊的"Java Build Path"選項-->選擇Libraries選項卡-->Add External JARs-->去尋找
F:\JavaWeb教程\ssh-jar\struts-2.2.1.1-all\struts-2.2.1.1\lib下面的指定的jar包導入即可

I. 請問struts2能實現上百兆的視頻的上傳和下載嗎如果可以,怎麼配置 看到您以前提問過這個問題能說下嗎

可以,只要常量則祥碼配對了就可以。
不過這種大文件,一般孫哪在內網可以,要是在外宴配網的話還是不要提供這種功能了

J. struts2批量上傳文件提示以下異常

struts.multipart.saveDir沒有配置。
struts.multipart.saveDir用於指定存放臨時文件的文件夾,
於是在,struts.xml配置文件中增加如下:
<constant
name="struts.multipart.saveDir"
value="/tmp"/>
設置臨時文件上傳路徑。

閱讀全文

與sstruts2上傳下載文件相關的資料

熱點內容
qq音樂灰色不能播放 瀏覽:902
蘋果p分期 瀏覽:177
江門移動大數據怎麼樣 瀏覽:203
手機用什麼APP玩ps4游戲 瀏覽:350
用藍牙如何傳送數據和軟體 瀏覽:135
是大數據還是兄弟情什麼意思 瀏覽:16
手機qq收藏的文件在哪 瀏覽:523
蘋果筆記本登錄鑰匙串 瀏覽:448
有線乙太網未識別網路 瀏覽:524
win10徹底重裝系統 瀏覽:411
word怎麼向上插入表格 瀏覽:335
jscookie重新賦值 瀏覽:948
如何用微信傳微雲文件怎麼打開方式 瀏覽:103
保存桌面的文件路徑怎麼更改 瀏覽:732
筆記本win10沒有熱點 瀏覽:408
廣州導航升級 瀏覽:859
店鋪升級繳納服務費 瀏覽:199
法蘭克車床車牙去半扣怎麼編程 瀏覽:227
初一零基礎如何學編程 瀏覽:798
上古卷軸5鐵匠升級方法 瀏覽:663

友情鏈接