你在catch裡面把錯誤給輸出一下。然後把錯誤信息給貼出來。肯定是哪一步出異常了。現在光看代碼也看不出來啊。
B. java 將上傳文件以二進制流保存在資料庫表中的某個欄位,怎麼做啊
我是用apache的commons-fileupload-1.2.1組件做的,通過表單收集數據.
其實text只是傳了一個路徑path給了伺服器,伺服器通過傳過去的path來讀取你上傳的附件(用的是文件輸入/輸出流),所以只需要判斷傳過來的path是否存在就可以了(file.exists()方法可行)。
fileupload組件對數據流的格式化進行了封裝,FileUploadServlet.parse(HttpRequest request)的方法可以從請求頭中獲得你的上傳的數據流,保存過程就簡單了。詳細的請上網搜索關鍵字:apache fileupload。一定能找到你想要的資料。
C. Java中讀寫二進制文件
肯定是第一種了 用到了緩存 可以減少硬碟的讀寫次數 提高效率
D. JAVA 傳圖片 只能傳8k
試試看用smartupload,需要的話站內或qq 12218952
E. java web 大文件上傳下載
用框架 ssh
追問
如果大並發量,會不會出什麼問題?
回答
這個我沒試過,我只是上傳過照片。我記得這個是有上傳限制的,要在struts.xml文件中進行配置。
我的回答:
struts2支持多文件一起上傳 , 封裝性好。倘若文件大, 配置文件大小 可以搞定。上傳速度就卡你網速了。
F. java如何存儲巨長的二進制數
有個類叫BigInteger,還有BigDecimal,可以解決這個問題。不過不推薦用java解決高精度計算問題
/**
* 你的採納是我繼續為大家解疑答惑的東西,如解決了你的問題,望接納!
*/
G. java實現多文件上傳
即使再多文件也是通過的單個文件逐次上傳的(zip等壓縮包實際上是一個文件)。實現思路就是將多個文件循環進行上傳,上傳方法舉例:
/**
* 上傳文件
*
* @param fileName
* @param plainFilePath 文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上傳文件開始");
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}
備註:只需要修改上傳的伺服器地址、用戶名、密碼即可進行伺服器訪問上傳。根據實際需要修改即可。