j2ee上傳文件
『壹』 j2ee我上傳圖片文件後文件類型都是temp的了,都是以什麼文件名.temp結尾,這是怎麼回事啊,求詳解,怎麼寫
以前遇到過這個問題,原因是什麼好像記不太清楚了,後來換寫法了,就沒這個問題了
下面是我覺得比較簡單的一種寫法,你可以參考下,還有一種別的,如果你要的法可以再貼給你
private void upload(HttpServletRequest request) throws Exception {
Category category = new Category();
category.setFiles(new HashSet());
String webroot = request.getRealPath("");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
// 創建磁碟工廠,利用構造器實現內存數據儲存量和臨時儲存路徑
DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 4,
new File(webroot+"\\temp\\"));
// 設置最多隻允許在內存中存儲的數據,單位:位元組
// factory.setSizeThreshold(4096);
// 設置文件臨時存儲路徑
// factory.setRepository(new File("D:\\Temp"));
// 產生一新的文件上傳處理程式
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setHeaderEncoding("UTF-8");
upload.setSizeMax(1024 * 1024 * 100);
// 解析請求,開始讀取數據
// 得到所有的表單域,它們目前都被當作FileItem
List<FileItem> fileItems = upload.parseRequest(request);
// 依次處理請求
Iterator<FileItem> iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
// 如果item是正常的表單域
String value = item.getString("UTF-8");
category.setName(value);
} else {
item.write(new File(webroot + "\\temp\\" + fileName));
}
}
}
}
『貳』 j2ee項目web開發用戶上傳頭像jsp頁面顯示問題
1、亂碼把<%@page中的charset=UTF-8
2、文件上傳最簡單的方式:頁面用<file>標簽選擇文件,from提交方式method=multipart/from-data這樣servlet可以直接獲取到頁面的文件輸入輸出流,這樣你可以保存到伺服器,D盤啊隨意什麼位置!
3、servlet想頁面輸出文件,可以獲取jsp的out對象,直接輸出頁面例如:out.write("img<src='路徑'>");即可
『叄』 J2EE中怎麼實現上傳和下載
試試,項目引入commons-fileupload-1.2.jar
====================================================
// 新建一個SmartUpload對象
SmartUpload su = new SmartUpload();
// 上傳初始化
su.initialize(pageContext);
// 設定上傳限制
// 1.限制每個上傳文件的最大長度。
//su.setMaxFileSize(1024*1024);
// 2.限制總上傳數據的長度。
//su.setTotalMaxFileSize(5*1024*1024);
// 3.設定允許上傳的文件(通過擴展名限制),僅允許doc,txt文件。
su.setAllowedFilesList("xls,XLS,xlsx,XLSX,doc,DOC,docx,DOCX,ppt,PPT,pdf,PDF,gif,GIF,jpg,JPG,pptx,PPTX,txt,TXT");
// 4.設定禁止上傳的文件(通過擴展名限制),禁止上傳帶有exe,bat,jsp,htm,html擴展名的文件和沒有擴展名的文件。
//su.setDeniedFilesList("exe,bat,jsp,htm,html,txt");
// 上傳文件
su.upload();
com.jspsmart.upload.File files = su.getFiles().getFile(0);//獲得需要上傳的file,form表單中的file標簽
String fileName = new String(files.getFileName());//獲得上傳文件的文件名
String path = "路徑"+fileName//存放路徑
files.saveAs(path , files.SAVEAS_VIRTUAL);//上傳
========================以上上傳================
try {
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
// 設定contentDisposition為null以禁止瀏覽器自動打開文件,
//保證點擊鏈接後是下載文件。若不設定,則下載的文件擴展名為
//doc時,瀏覽器將自動用word打開它。擴展名為pdf時,
//瀏覽器將用acrobat打開。
//su.setContentDisposition(null);
su.downloadFile(path.trim());//傳入下載的文件路徑
} catch (ServletException e) {
e.printStackTrace();
} catch (SmartUploadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
=========================以上下載===================
注釋很詳細,希望對你有幫助
『肆』 J2EE:如何判斷上傳的文件是否為Excel難倒只能判斷後綴名
一般來說,文件前面幾個位元組會有些特別,表示自己的格式或版本。你只需要試驗一下,拿幾個不同的格式的文件來讀取它們的前十個位元組來對比一下。
『伍』 什麼是j2ee組件
commons-beanutils:處理javaBean
commons-dbcp:資料庫連接池
commons-dbutils:不是一個嚴格意義上的 ORM 框架,它提供了一些Jdbc的操作封裝來簡化數據查詢和記錄讀取操作
commons-fileupload:用來實現Java環境下面的文件上傳功能
commons-logging:提供了對日誌實現的包裝
hibernate-release:
jbpm:JavaBusinessProcessManagement(業務流程管理)
『陸』 j2ee上傳文件 如何獲得上傳前文件的絕對路徑 創建時間 我想獲取在本地創建文件的時間
<!DOCTYPE html PUBpC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>獲取文件絕對路徑</title>
<style type="text/css">
</style>
</head>
<body>
<script type="text/javascript">
//FX獲取文件路徑方法
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('無法訪問本地文件,由於瀏覽器安全設置。為了克服這一點,請按照下列步驟操作:(1)在地址欄輸入"about:config";(2) 右鍵點擊並選擇 New->Boolean; (3) 輸入"signed.applets.codebase_principal_support" (不含引號)作為一個新的首選項的名稱;(4) 點擊OK並試著重新載入文件');
return;
}
var fileName=fileBrowser.value; //這一步就能得到客戶端完整路徑。下面的是否判斷的太復雜,還有下面得到ie的也很復雜。
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath( fileName.replace(/\//g, "\\\\") );
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
return;
}
if ( file.exists() == false ) {
alert("File '" + fileName + "' not found.");
return;
}
return file.path;
}
//根據不同瀏覽器獲取路徑
function getvl(obj){
//判斷瀏覽器
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
var file_url="";
if(Sys.ie<="6.0"){
//ie5.5,ie6.0
file_url = obj.value;
}else if(Sys.ie>="7.0"){
//ie7,ie8
obj.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
//fx
//file_url = document.getElementById("file").files[0].getAsDataURL();//獲取的路徑為FF識別的加密字元串
file_url = readFileFirefox(obj);
}else if(Sys.chrome){
file_url = obj.value;
}
//alert(file_url);
document.getElementById("text").innerHTML="獲取文件域完整路徑為:"+file_url;
}
</script>
<h1>JS獲取文件域完整路徑的方法,兼容不同瀏覽器</h1>
<div id="text" style="color:#f00;"></div>
<input type="file" id="file" onchange="getvl(this)" />
</body>
</html>
chorme 和 ie 都可以獲取到 火狐設置一下也可以
『柒』 求:j2ee文件上傳的例子
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
public class UploadForm extends ActionForm {
private String picname;
/** files property */
private FormFile files;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
public FormFile getFiles() {
return files;
}
public void setFiles(FormFile files) {
this.files = files;
}
public String getPicname() {
return picname;
}
public void setPicname(String picname) {
this.picname = picname;
}
}
樓主寫一個這樣的Struts Form就行了...
上傳文件的時候使用的是 commons-fileupload.jar 這個包
現在樓主應該知道怎麼去處理表單裡面的數據了吧??
在Action中
UploadForm uploadForm = (UploadForm) form;
可以從 uploadForm 這個對象中得到上傳文件的信息....
如果樓主不會使用這個類的話..去網上查一下到處都是..
還可以通過 uploadForm 對象得到 用戶輸入的文件名
這樣你就可以修改 用戶上傳文件的文件名了....呵呵...
我已經給樓主提示到這里了..
已經夠清楚的了....
樓主也知道如果你沒有思路別人可以給你指明思路
但不能全都靠別人....以下由樓主你自己去寫吧...
好好思考一下我覺得對樓主來說應該不是什麼大問題吧....
如果在處理的過程中遇到什麼難題....
如果說我在線的話我會的話一定幫你解決...
祝樓主能夠早日學會使用Struts 上傳文件....
祝樓主:好人一生平安!
『捌』 J2EE 實現文件上傳
基本上無論用什麼方式做文件上傳, 原理應該都是一樣的吧
頁面使用file或其他組件, 以流的方式將文件傳輸到服務端, 服務端通過request的能過處理這種文件流的實現類接收流,交給對應業務處理
『玖』 關於j2ee中取伺服器端地址
基本上java獲取路徑就這些了,應該有你的答案,現在加班呢,沒時間看你的程序,呵呵,自己試試吧!
1.在Servlet中取得路徑:
(1)得到工程目錄:request.getSession().getServletContext().getRealPath("") 參數可具體到包名。
結果:E:\Tomcat\webapps\TEST
(2)得到IE地址欄地址:request.getRequestURL()
結果:http://localhost:8080/TEST/test
(3)得到相對地址:request.getRequestURI()
結果:/TEST/test
2.jsp中取得路徑:
以工程名為TEST為例:
(1)得到包含工程名的當前頁面全路徑:request.getRequestURI()
結果:/TEST/test.jsp
(2)得到工程名:request.getContextPath()
結果:/TEST
(3)得到當前頁面所在目錄下全名稱:request.getServletPath()
結果:如果頁面在jsp目錄下 /TEST/jsp/test.jsp
(4)得到頁面所在伺服器的全路徑:application.getRealPath("頁面.jsp")
結果:D:\resin\webapps\TEST\test.jsp
(5)得到頁面所在伺服器的絕對路徑:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();
結果:D:\resin\webapps\TEST
3.在類中取得路徑:
(1)類的絕對路徑:Class.class.getClass().getResource("/").getPath()
結果:/D:/TEST/WebRoot/WEB-INF/classes/pack/
(2)得到工程的路徑:System.getProperty("user.dir")
結果:D:\TEST
『拾』 百度富文本編輯器怎麼用在J2EE項目中
需要引入UEditor的源文件,和jquery文件,來對編輯器進行支持。如果看到圖二的效果則說明部署成功咯,接下來我們就可以根據自己的實際需求來進行場地參數
獲取編輯器的輸入的文本內容,然後對獲取的值傳遞給後台處理,也可通過from表單進行操作
配置文件上傳,圖片上傳、截圖上傳路徑(以jsp為例)首先配置ueditor.config.js來初始化ueditor的安裝路徑,projectName代表項目路徑URL則表示,配置後的ueditor的所在路徑(可自定義)
配置好路徑後就可以調用了,接下來需要配置上傳文件的路徑了(jsp/config.json)里,需要配置的有imageUrlPrefix圖片訪問的路徑前綴
在項目中添加ueditor說需要的jar包文件,然後啟動項目