jfinal文件上傳
① jfinal怎麼上傳文件
JFinal約定,如果保存路徑是以 "/" 或者 "X:/" 打頭使用的是絕對路徑,否則使用相對路徑,默認的相對路徑為 WebRoot/upload,這個相對路徑還可以通過 me.setUploadedFileSaveDirectory(...)來設置
② JFinal能夠批量上傳文件到ftp文件伺服器嗎
必須是可以的啊, 配合 jsch.jar(ftp文件上傳使用) 使用。
Controller 源碼中已經提供兩個獲取 批量上傳的文件 方法
java">
publicList<UploadFile>getFiles(StringuploadPath,intmaxPostSize){
if(==false)
request=newMultipartRequest(request,uploadPath,maxPostSize);
return((MultipartRequest)request).getFiles();
}
publicList<UploadFile>getFiles(StringuploadPath){
if(==false)
request=newMultipartRequest(request,uploadPath);
return((MultipartRequest)request).getFiles();
}
獲取 到 List<UploadFile> 文件集合之後, 再使用 jsch.jar 進行ftp文件上傳到其他伺服器
JSchjsch=newJSch();
SessionsshSession=jsch.getSession(this.username,this.host,this.port);
sshSession.setPassword(password);
PropertiessshConfig=newProperties();
sshConfig.put("StrictHostKeyChecking","no");
sshSession.setConfig(sshConfig);
sshSession.connect(20000);
Channelsftp=sshSession.openChannel("sftp");
sftp.connect();
。。。這個網路搜一下,代碼很多,這里就不在啰嗦了
③ jfinal整合hdfs文件上傳時如何獲取真實路徑
網頁鏈接
getFile文件上傳
Controller提供了getFile系列方法支持文件上傳。
特別注意:如果客戶端請求為multipart request(form表單使用了enctype="multipart/form-data"),那麼必須先調用getFile系列方法才能使getPara系列方法正常工作,因為multipart request需要通過getFile系列方法解析請求體中的數據,包括參數。同樣的道理在Interceptor、Validator中也需要先調用getFile。
文件默認上傳至項目根路徑下的upload子路徑之下,該路徑稱為文件上傳基礎路徑。可以在 JFinalConfig.configConstant(Constants me)方法中通過me.setBaseUploadPath(baseUploadPath) 設置文件上傳基礎路徑,該路徑參數接受以」/」打頭或者以windows磁碟盤符打頭的絕對路徑,即可將基礎路徑指向項目根徑之外,方便單機多實例部署。當該路徑參數設置為相對路徑時,則是以項目根為基礎的相對路徑。
上面是注意事項,
代碼:
UploadFileuf=getFile();
Filef=uf.getFile();
Stringpath=f.getPath();
//或者Stringpath=uf.getUploadPath()+File.separator+uf.getFileName();
④ jfinal怎麼做文件上傳
一定要多看官方手冊文檔!!!!
一定要多看官方手冊文檔!!!!
一定要多看官方手冊文檔!!!!
getFile文件上傳
Controller提供了getFile系列方法支持文件上傳。
特別注意:如果客戶端請求為multipart request(form表單使用了enctype="multipart/form-data"),那麼必須先調用getFile系列方法才能使getPara系列方法正常工作,因為multipart request需要通過getFile系列方法解析請求體中的數據,包括參數。同樣的道理在Interceptor、Validator中也需要先調用getFile。
文件默認上傳至項目根路徑下的upload子路徑之下,該路徑稱為文件上傳基礎路徑。可以在 JFinalConfig.configConstant(Constants me)方法中通過me.setBaseUploadPath(baseUploadPath) 設置文件上傳基礎路徑,該路徑參數接受以」/」打頭或者以windows磁碟盤符打頭的絕對路徑,即可將基礎路徑指向項目根徑之外,方便單機多實例部署。當該路徑參數設置為相對路徑時,則是以項目根為基礎的相對路徑。
上面是注意事項,
代碼:UploadFile uf = getFile();File f = uf.getFile();String path = f.getPath();//或者 String path = uf.getUploadPath() + File.separator + uf.getFileName();
⑤ 使用jfinal如何接受app傳過來的文件
Controller提供了getFile系列方法支持文件上傳。
特別注意:如果客戶端請求為multipart request(form表單使用了enctype="multipart/form-data"),那麼必須先調用getFile系列方法才能使getPara系列方法正常工作,因為multipart request需要通過getFile系列方法解析請求體中的數據,包括參數。同樣的道理在Interceptor、Validator中也需要先調用getFile。
文件默認上傳至項目根路徑下的upload子路徑之下,該路徑稱為文件上傳基礎路徑。可以在 JFinalConfig.configConstant(Constants me)方法中通過me.setBaseUploadPath(baseUploadPath) 設置文件上傳基礎路徑,該路徑參數接受以」/」打頭或者以windows磁碟盤符打頭的絕對路徑,即可將基礎路徑指向項目根徑之外,方便單機多實例部署。當該路徑參數設置為相對路徑時,則是以項目根為基礎的相對路徑。
⑥ jfinal文件上傳支持的maxPostSize為多少
不清楚您現在的情況和WebLogic的版本。一般如果您的domain還沒有建立,可以在用ConfigurationWizard建domain的時候設置。如果domain已經存在,那麼如果是Window系統,可以編輯\bin\setDomainEnv.cmd,修改關於USER_MEM_ARGS的設置,比如:set
⑦ jfinal如何實現文件上傳到非工程目錄下並可
1 , 設置全局
@Override
public void configConstant(Constants me) {
me.setBaseUploadPath(String baseUploadPath)
}
/**
*Setfilebaseuploadpath.
*設置文件上傳保存基礎路徑,當路徑以"/"打頭或是以windows磁碟盤符打頭,
*則將路徑設置為絕對路徑,否則路徑將是以應用根路徑為基礎的相對路徑
*<pre>
*例如:
*1:參數"/var/www/upload"為絕對路徑,上傳文件將保存到此路徑之下
*2:參數"upload"為相對路徑,上傳文件將保存到PathKit.getWebRoot()+"/upload"路徑之下
*</pre>
*/
publicvoidsetBaseUploadPath(StringbaseUploadPath){
if(StrKit.isBlank(baseUploadPath)){
("baseUploadPathcannotbeblank.");
}
this.baseUploadPath=baseUploadPath;
}
2 , 使用Java的文件拷貝或者移動
UploadFile.getFile().renameTo(newFile);
⑧ jfinal上傳怎樣改變上傳文件的名稱
上傳文件或圖片進行重命名是我們在php上傳中會碰到的一個問題了,在重命名無非就是對你上傳的文件生成一個隨機的字元串了,包括有Md5,隨機,或按時間日期來重命名了,下面我來給大家介紹。如我們在上傳文件頁面中如下操作:$name=$_FILES['userfile']['name']; //將所上傳的文件名稱賦予name然後我們要對它進行重命名//文件名的自動生成list($usec, $new_name) = explode(" ", microtime());if(@$extension_name){//限制文件類型為jpg、gif、png、bmpmove_uploaded_file($tmp_name,$new_dir.'/'.$new_name.'.'.$extension_name);//移動到目標文件夾echo '上傳成功';這樣我們就把文件名以時間日期生成了一個新的文件名了,例:以下是我添加的將文件名重命名為系統時間的代碼: 0) { echo "Return Code: " . $_FILES["uppic"]["error"] . ""; }else { //echo "Upload: " . $_FILES["uppic"]["name"] . ""; //echo "Type: " . $_FILES["uppic"]["type"] . ""; //echo "Size: " . ($_FILES["uppic"]["size"] / 1024) . " Kb"; //echo "Temp file: " . $_FILES["uppic"]["tmp_name"] . ""; $uptype = explode(".", $_FILES["uppic"]["name"]); $newname = $date.".".$uptype[1]; //echo($newname); $_FILES["uppic"]["name"] = $newname; if (file_exists("pics/" . $_FILES["uppic"]["name"])) { echo $_FILES["uppic"]["name"] . " already exists. "; } else { $_FILES["uppic"]["name"] = move_uploaded_file($_FILES["uppic"]["tmp_name"], "pics/" . $_FILES["uppic"]["name"]); echo ""; echo "window.location.href=' } }}else{echo "Invalid file";}?> 大家可以參考一下
⑨ JFinal如何實現圖片上傳
public void uploadpic(){
UploadFile upfile = getFile();//JFinal規定getFile()必須最先執行
File file = upfile.getFile();
String filename = file.getName();
String delfilename = filename;
if(filename!=null && !filename.equals("")){
filename = new SimpleDateFormat("yyyyMMddkkmmss").format(new Date())+filename;
/**
* 新保存的位置
*/
String path = getRequest().getSession().getServletContext()
.getRealPath("/");
String newPath = "/media/file/";//自定義目錄 用於存放圖片
/**
* 沒有則新建目錄
*/
File floder = new File(path + newPath);
if (!floder.exists()) {
floder.mkdirs();
}
/**
* 保存新文件
*/
FileInputStream fis = null;
FileOutputStream fos = null;
try{
File savePath = new File(path + newPath + filename);
if(!savePath.isDirectory()) savePath.createNewFile();
fis = new FileInputStream(file);
fos = new FileOutputStream(savePath);
byte[] bt = new byte[300];
while (fis.read(bt, 0, 300) != -1) {
fos.write(bt, 0, 300);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(null!=fis) fis.close();
if(null!=fos) fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 刪除原圖片,JFinal默認上傳文件路徑為 /upload(自動創建)
*/
File delFile = new File(path+"/upload/"+delfilename);
if(delFile.exists()){
delFile.delete();
}
setAttr("msg",filename);
setAttr("t",1);
}else{
setAttr("t",0);
}
renderJson();
}