當前位置:首頁 » 文件管理 » struts2上傳圖片到伺服器

struts2上傳圖片到伺服器

發布時間: 2022-08-05 05:28:18

① struts2+Hibernate上傳圖片,如何實現圖片可以放在伺服器上;資料庫保存圖片路徑。

樓主struts2上傳代碼會寫嗎?

  1. struts2本身提供了上傳攔截器,用struts2實現上傳功能,並獲得保存地址

    <!-- 配置fileUpload的攔截器 -->

    <interceptor-ref name="fileUpload">

  2. 獲得文件存儲地址(上傳時指定)+文件名

  3. 調用保存方法(Hibernate),將文件路徑存入資料庫

在一個事務中完成即可!

如:有哪塊有難點,及時追問。good luck!

② struts2多圖片上傳出現的問題,有的圖片不能上傳

建議頁面使用jquery uploadify上傳插件 那可以用UUID來命名

③ struts2實現圖片的上傳和下載

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.*;
import com.zdvictory.taurus.common.util.*;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;

/** *
*/
public class UploadFileHandler {

private static int BUFFER_SIZE = 8192;

/**
* 上傳附件操作 傳遞參數:系統參數配置設置的參數名稱
*/
@SuppressWarnings("unchecked")
public static List<Attachment> upload(String sysParaName) throws Exception {
// 文件保存路徑
String path = SysParaFinder.getSysParaValue(sysParaName);
List<Attachment> list = new ArrayList<Attachment>();
MultiPartRequestWrapper request = (MultiPartRequestWrapper) ServletActionContext
.getRequest();
Enumeration enu = request.getFileParameterNames();
while (enu.hasMoreElements()) { // 對每一個文件域進行遍歷
String controlName = (String) enu.nextElement();
String[] fileNames = request.getFileNames(controlName);
File[] uploadFiles = request.getFiles(controlName);
for (int i = 0; i < uploadFiles.length; i++) {
File uploadFile = uploadFiles[i];
if (!uploadFile.exists())
continue;
// 如果文件夾不存在,創建文件夾,將文件保存到目錄
File dir = new File(request.getRealPath("/") + path);
if (!dir.exists())
dir.mkdirs();
String ext = fileNames[i].substring(fileNames[i].indexOf("."),
fileNames[i].length());// 獲取文件擴展名
String filename = UUID.randomUUID().toString() + ext;
File file = new File(request.getRealPath("/") + path + filename);
byte[] data = new byte[BUFFER_SIZE];
int byteRead = -1;
FileInputStream in = new FileInputStream(uploadFile);
FileOutputStream out = new FileOutputStream(file);
while ((byteRead = in.read(data)) != -1) {
out.write(data, 0, byteRead);
out.flush();
}
out.close();
in.close();
// 設置附件對象屬性
Attachment attach = new Attachment();
attach.setFilename(fileNames[i]);
attach.setContentType(ext);
attach.setFilepathname(path + filename);
attach.setFilesize(uploadFile.length());
list.add(attach);
}
}
return list;
}
}
文件下載

public String download() throws Exception {
redheadTemplate = redheadTemplateManager.findById(Long
.valueOf(getId()[0]));
String name = redheadTemplate.getName()
+ redheadTemplate.getFilepathname().substring(
redheadTemplate.getFilepathname().lastIndexOf("."),
redheadTemplate.getFilepathname().length());
this.setFilename(new String(name.getBytes(), "ISO8859-1"));
this.setFilepathname(redheadTemplate.getFilepathname());
return "download";
}
文件下載配置文件

<result name="download" type="stream">
<!-- 下載文件類型 -->
<param name="contentType">
application/octet-stream
</param>
<!-- 默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文
件保存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,
這里使用的是動態文件名,${filename}, 它將通過 Action 的 getFilename() 獲得文件名 -->
<param name="contentDisposition">
attachment;filename="${filename}"
</param>
<!-- 下載的InputStream流,Struts2自動對應Action中的getDownloadFile方法,該方法必須返回InputStream類型 -->
<param name="inputName">downloadFile</param>
<!-- 輸出時緩沖區的大小 -->
<param name="bufferSize">8192</param>
</result>

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

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

⑤ Struts2上傳文件到伺服器下,怎麼伺服器重啟之後文件就沒了

我的也遇到過這樣的情況,我的文件是放在伺服器上,原因是本地的項目是沒有存放該文件的,用myeclipse重新部署後,當然就沒有了。

⑥ struts2上傳圖片怎麼保存到資料庫中

1、在實際開發中,圖片一般是上傳到圖片伺服器上,而資料庫保存路徑。struts2使用upload攔截器可以直接取到圖片路徑,處理後保存到資料庫就行了。
2、對於一些需要保存到資料庫的圖片,可以使用大文本欄位(clob或blob)。方法一般都是使用位元組流將圖片寫入資料庫。

⑦ 如何應用struts2上傳圖片保存到指定路徑,並使路徑存入資料庫,該如何使用

struts2

⑧ struts2上傳圖片到linux伺服器,成功上傳文件,無法返迴路徑,報錯: net::ERR_CONTENT_LENGTH_MISMATCH

因為windows和linux系統的文件路徑分割符是不一樣的。一個是「/」一個是「\」,所以換了環境當熱會錯。java中有一個方法叫做File.separator可以得到是運行環境下的分隔符,你需要在代碼中做出修改。將文件路徑拆開後然後使用 File.separator拼接。

⑨ struts2 spring hibernate實現圖片上傳,資料庫保存路徑

struts2有專門的攔截器進行上傳工作,
1.下載struts2上傳包commons-fileupload-1.2.jar
2.在action中接收並處理文件
3.在struts.xml中對應的action中進行配置上傳攔截器
4.在server層中寫業務處理操作
5.層寫資料庫插入語句
有什麼不清楚的可以網路Hi我!~good luck!
具體代碼,看我下面給你的參考地址!~

⑩ 伺服器用Struts2框架如何接收AFinal上傳的圖片

java後台和你平常用from
表單上傳的寫法是一樣的,什麼都不用修改.剩下的都是安卓端的事

熱點內容
中國十大解壓電影 發布:2025-04-23 06:13:07 瀏覽:582
產品直播腳本範文例子 發布:2025-04-23 06:10:24 瀏覽:312
安卓id加密 發布:2025-04-23 06:10:23 瀏覽:388
python行內if 發布:2025-04-23 06:10:20 瀏覽:219
ubuntu編譯32位程序 發布:2025-04-23 06:10:20 瀏覽:959
什麼在資源配置中起宏觀調控作用 發布:2025-04-23 06:05:25 瀏覽:723
換手機怎麼把安卓app移到蘋果手機 發布:2025-04-23 06:05:20 瀏覽:899
java的時間格式 發布:2025-04-23 06:04:39 瀏覽:975
美團安卓哪裡再次配送 發布:2025-04-23 05:56:07 瀏覽:978
油畫價格演算法 發布:2025-04-23 05:54:37 瀏覽:532