當前位置:首頁 » 文件傳輸 » jsp上傳整個文件夾
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jsp上傳整個文件夾

發布時間: 2023-04-05 13:43:34

⑴ 使用JSP如何在上傳文件時自動創建一個新的文件夾

//取出當天的日期,轉換成字元串型跡橘卜團 String date = ...//savePath :存放路徑,一般上傳目錄的根目錄都是配置的.此處假定一個目錄 String savePath ="/app/upload"; savePath = savePath + File.separator + date; //創建文件,如果不傳在創建所有層次的目錄 File dirFile = new File(savePath); if (!dirFile.exists()) { dirFile.mkdirs(); } //將文件重新命名,存放到指定目錄 reName: 新的文件名 fileext:文件擴展名targetPath = savePath + File.separator + reName + "." + fileext;File targetfile = new File(targetPath); //save file ,此處使州姿用的是apache的通用上傳包item.write(targetfile);//remove temp fileitem.delete();

⑵ 關於jsp 文件上傳。

首先你要排查一下錯誤。
1.debug 看一下 file是否傳到了後台 是否是null
是null請檢查前台請沒罩求問題,不伏友是null 看一下 獲取的filename是不是null
2.圖片路徑 根枯廳鬧據提示 到盤符中查看是否有此路徑,沒有的話 手動建立文件夾或者通過代碼創建

⑶ 如何用jsp上傳圖片到指定文件夾

String time = new SimpleDateFormat("yyyyMMddHHmmss")
.format(Calendar.getInstance().getTime());// 得到系統時罩核間
// 上傳技術
SmartUpload up = new SmartUpload();
// 進行初始化
up.initialize(this.getServletConfig(), request, response);
// 開始上傳
try {

up.upload("utf-8");//設置編碼方式。
int id = Integer.parseInt(up.getRequest().getParameter("id"));// 商品編號
SmartFiles sf = up.getFiles();// 得到上傳的所有圖片
SmartFile file = sf.getFile(0);// 根據索引得到上傳圖片 多個圖片可以用循環:悉悶激
String type = file.getFileExt();// 得到圖片後綴名
String folder = "tp/";// 指定文件夾
String path = folder + time + "." + type;// 路徑
System.out.println(path + "路徑");
file.saveAs(request.getRealPath("/") + path);// 保存圖片
} catch (Exception e) {
e.printStackTrace();
}
//你搞個郵箱我把SmartUploadjar包 發給你吧。 //設置from提交睜襪
/*<form action="SellerServet" method="post"
enctype="multipart/form-data">*/ // 加上 enctype="multipart/form-data

⑷ JSP上傳文件夾問題

我感覺不是上傳文件夾的問題,指定一個上傳的路徑,敬慎仿然後,在伺服器端把這個路徑拿到孝卜,實際生成這個指定的文亮纖件夾唄。為什麼要上傳文件夾呢?不太明白樓主的意思

⑸ 怎麼用JSP把本地的文件夾上傳到FTP伺服器

前段時間做了一個文件上傳ftp功能,你參照一下

package com.ftp.upload;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FTPUpload {
private FTPClient ftpClient = null;

private OutputStream outSteam = null;

/**
* ftp伺服器地址
*/
private String hostname = "192.168.1.2";
/**
* ftp伺服器埠
*/
int port = 21;
/**
* 登錄名
*/
private String username = "admin";

/**
* 登錄密碼
*/
private String password = "admin";

/**
* 需要訪問的遠程目錄
*/
private String remoteDir = "/home/demo";

public FTPUpload() { }

public FTPUpload(String hostname, int port, String username, String password, String remoteDir){
this.hostname = hostname;
this.port = port;
this.username = username;
this.password = password;
this.remoteDir = remoteDir;

}
/**
* 連接FTP伺服器 並登錄
* @param hostName FTP伺服器hostname
* @param port FTP伺服器埠
* @param username FTP登錄賬號
* @param password FTP登錄密碼
*/
private FTPClient connectFTPServer() {
try {
//1.創建FTPClient對象
ftpClient = new FTPClient();
//2.連接FTP伺服器
// 如果採用默認埠,可以使用ftp.connect(url)的方式直接連接FTP伺服器
ftpClient.connect(hostname, port); //鏈接到ftp伺服器
// System.out.println("連接到ftp伺服器地址 --> ftp://" + hostName + ":" + port + " 成功..開始登錄");

//3.判斷連接ftp伺服器是否成功
int reply = ftpClient.getReplyCode();
// System.out.println("以2開頭的返回值就會為真:" + reply);
//以2開頭的返回值就會為真
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
return null;
}

//4.登錄FTP伺服器.用戶名 密碼
ftpClient.login(username, password);
System.out.println("登錄成功." );

return ftpClient;
} catch (Exception e) {
e.printStackTrace();
ftpClient = null;
return ftpClient;
}
}

/**
* 向FTP伺服器上傳文件
* @param filePathName 上傳文件的全路徑名稱
* @return 成功返回true,否則返回false
*/
public boolean uploadFile(String filePathName) {
// 初始表示上傳失敗
boolean success = false;
try {
// 創建FTPClient對象
ftpClient = connectFTPServer();
//創建文件夾
boolean flag = ftpClient.makeDirectory(remoteDir);
if(flag) {
System.out.println("創建文件夾:" + remoteDir );
}

// 轉到指定上傳目錄
boolean flag0 = ftpClient.changeWorkingDirectory(remoteDir);
// 將上傳文件存儲到指定目錄
if(filePathName == null || filePathName.length() == 0){
return success;
}
String filename = filePathName.substring(filePathName.replace("\\", "/").lastIndexOf("/") + 1, filePathName.length());

InputStream input = new FileInputStream(new File(filePathName));

// ftpClient.setBufferSize(1024);
// ftpClient.setControlEncoding("GBK");
// ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);//設置文件類型

boolean flag1 = ftpClient.storeFile(filename, input);
System.out.println("轉到指定上傳目錄:" + flag0 + " 將上傳文件存儲到指定目錄:" + flag1);

input.close(); // 關閉輸入流
ftpClient.logout(); // 退出ftp
success = true; // 表示上傳成功

} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

/**
* 從FTP伺服器指定目錄下載文件 到本地目錄中 OK
* @param fileName 要下載的文件名
* @param localPath 下載後保存到本地的路徑
* @param showlist 下載時是否顯示列表 ( true 顯示 )
* @return
*/
public boolean downFile(String fileName, String localPath, boolean showlist) {
// 初始表示下載失敗
boolean success = false;
if(fileName == null || fileName.length() == 0 || localPath == null || localPath.length() == 0){
return success;
}
try {
File file = new File(localPath);

if(!file.isDirectory()){
file.mkdir();
}
// 創建FTPClient對象
ftpClient = connectFTPServer();
// 轉到指定下載目錄
boolean flag = ftpClient.changeWorkingDirectory(remoteDir);
if(!flag) {
System.out.println("目錄:" + remoteDir +"不存在!");
return success;
}
// 列出該目錄下所有文件
FTPFile[] remoteFiles = ftpClient.listFiles();

// 遍歷所有文件,找到指定的文件
if(showlist){
System.out.println("目錄" + remoteDir + "下的文件:");
}

for (FTPFile ftpFile : remoteFiles) {
String name = ftpFile.getName();
if(showlist){
long length = ftpFile.getSize();
String readableLength = FileUtils.byteCountToDisplaySize(length);
System.out.println(name + ":\t\t" + readableLength);
}

if (name.equals(fileName)) {
// 根據絕對路徑初始化文件
File localFile = new File(localPath + "/" + name);
// 輸出流
OutputStream is = new FileOutputStream(localFile);
// 下載文件
ftpClient.retrieveFile(name, is);
is.close();
}
}
// 退出ftp
ftpClient.logout();
// 下載成功
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}

/**
* 顯示FTP伺服器指定文件夾中的文件及大小 OK
* @return
*/
private boolean showFileList() {
// 初始表示失敗
boolean success = false;
try {
ftpClient = connectFTPServer();
FTPFile[] remoteFiles = null;
// 轉到指定下載目錄
boolean flag = ftpClient.changeWorkingDirectory(remoteDir);
if(!flag) {
System.out.println("目錄:" + remoteDir +"不存在!");
return success;
} else{
remoteFiles = ftpClient.listFiles(remoteDir);
System.out.println("目錄" + remoteDir + "下的文件:");
}

if(remoteFiles != null) {
for(int i=0;i < remoteFiles.length; i++){
String name = remoteFiles[i].getName();
long length = remoteFiles[i].getSize();
String readableLength = FileUtils.byteCountToDisplaySize(length);
System.out.println(name + ":\t\t" + readableLength);
}
}
// 表示成功
success = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
//使用IO包關閉流
IOUtils.closeQuietly(outSteam);
try {
ftpClient.disconnect();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
return success;
}
public static void main(String[] args) {
FTPUpload ftp = new FTPUpload();
ftp.uploadFile("c:////test////bgssp.jar");
}
}

⑹ 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";
}
}

⑺ 通過jsp上傳本地文件夾地址

可以用轎旁碧struts的文件上閉舉傳
這是我寫的struts文件上傳,做的資料庫版的,先文件上傳到根目錄下,再保存根目錄的地址
package com.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

import com.bean.Award;
import com.service.Imp.AwardImp;
import com.struts.form.Award2Form;
/**
* MyEclipse Struts
* Creation date: 06-21-2009
*
* XDoclet definition:
* @struts.action path="/award2" name="award2Form" input="/award2.jsp" scope="request" validate="true"
*/
public class Award2Action extends DispatchAction {
/*
* Generated Methods
*/

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
/**
* 圖片上傳本保存到資料庫中
* /** 存放文件的文件夾啟殲 */

@SuppressWarnings({ "deprecation", "unchecked", "unchecked" })
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Award2Form af = (Award2Form) form;// TODO Auto-generated method stub
String awardname=af.getAward();
String info=af.getInfo();
//獲得路徑
FormFile file=af.getFile();
String filename=file.getFileName();
int last=filename.lastIndexOf(".");
AwardImp =null;
boolean flag=false;
String suffixName=filename.substring(last); //得到文件的後綴名
System.out.println("文件後綴名為:"+suffixName);
List suffix=new ArrayList(); //制定上傳的文件類型
suffix.add(".jpg");
suffix.add(".gif");
String image=null;
boolean b=false; //這個變數判斷是否合法的文件
//保存到制定的
String dir=request.getRealPath("/picture"); //上傳到根目錄下的picture文件夾下
//讀取數據
InputStream in=null;
//寫入數據
OutputStream out=null;
if(file==null||filename==""){
System.out.println("您沒有上傳圖片");
}
else{
for(int i=0;i<suffix.size();i++){
String s=(String)suffix.get(i);
System.out.println("文件後綴名為"+s);

if(suffixName.equals(s)){
b=true;
break;
}
}
if(b){
try {
in=file.getInputStream();
out=new FileOutputStream(dir+"/"+filename);
int read=0;
byte[] buff=new byte[1024];
int size=file.getFileSize();
if(size<102400){ //制定上傳文件的大小
while((read=in.read(buff, 0, 1024))!=-1){
out.write(buff,0, read);
}
image="/picture/award/"+filename;

}else{
System.out.println("您輸入的數據太大了");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Award award=new Award();
award.setAwardImage(image);
award.setAwardName(awardname);
award.setAwardInfo(info);
award.setAwardScore(af.getScore());
award.setAwardNumber(af.getNumber());
=new AwardImp();
flag=.addCompany(award);}
else{
String error="您上傳的文件不合法,請重新上傳";
System.out.println(error);
}
}

if(flag)
return mapping.findForward("success");
else
return mapping.findForward("failure");
}
}

package com.struts.action;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

import com.bean.Award;
import com.service.Imp.AwardImp;
import com.struts.form.Award2Form;
/**
* MyEclipse Struts
* Creation date: 06-21-2009
*
* XDoclet definition:
* @struts.action path="/award2" name="award2Form" input="/award2.jsp" scope="request" validate="true"
*/
public class Award2Action extends DispatchAction {
/*
* Generated Methods
*/

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
/**
* 圖片上傳本保存到資料庫中
* /** 存放文件的文件夾 */

@SuppressWarnings({ "deprecation", "unchecked", "unchecked" })
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
Award2Form af = (Award2Form) form;// TODO Auto-generated method stub
String awardname=af.getAward();
String info=af.getInfo();
//獲得路徑
FormFile file=af.getFile();
String filename=file.getFileName();
int last=filename.lastIndexOf(".");
AwardImp =null;
boolean flag=false;
String suffixName=filename.substring(last); //得到文件的後綴名
System.out.println("文件後綴名為:"+suffixName);
List suffix=new ArrayList(); //制定上傳的文件類型
suffix.add(".jpg");
suffix.add(".gif");
String image=null;
boolean b=false; //這個變數判斷是否合法的文件
//保存到制定的
String dir=request.getRealPath("/picture"); //上傳到根目錄下的picture文件夾下
//讀取數據
InputStream in=null;
//寫入數據
OutputStream out=null;
if(file==null||filename==""){
System.out.println("您沒有上傳圖片");
}
else{
for(int i=0;i<suffix.size();i++){
String s=(String)suffix.get(i);
System.out.println("文件後綴名為"+s);

if(suffixName.equals(s)){
b=true;
break;
}
}
if(b){
try {
in=file.getInputStream();
out=new FileOutputStream(dir+"/"+filename);
int read=0;
byte[] buff=new byte[1024];
int size=file.getFileSize();
if(size<102400){ //制定上傳文件的大小
while((read=in.read(buff, 0, 1024))!=-1){
out.write(buff,0, read);
}
image="/picture/award/"+filename;

}else{
System.out.println("您輸入的數據太大了");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Award award=new Award();
award.setAwardImage(image);
award.setAwardName(awardname);
award.setAwardInfo(info);
award.setAwardScore(af.getScore());
award.setAwardNumber(af.getNumber());
=new AwardImp();
flag=.addCompany(award);}
else{
String error="您上傳的文件不合法,請重新上傳";
System.out.println(error);
}
}

if(flag)
return mapping.findForward("success");
else
return mapping.findForward("failure");
}
}

⑻ jsp程序怎樣批量上傳同一文件夾下多個excel文件

所謂的批量巧型 有2個方法
1 畫面用多個input file框 遍歷後上斗襪傳
2 如果是用框架 就簡單不少比如struts利用form
網上用ajax的例子很多空寬激

⑼ jsp怎麼實現上傳文件到伺服器某個文件夾里

把文件數據提交到服務端,
只需要form表單就可以了,
<form method="post" enctype="multipart/form-data" action="">

<input type="file">
</form>
action就接收文件的地址,
就是你要寫保存文件的那個地址。
然後要寫保存文件的代碼,好吧,讓你失望了,手頭沒有,回頭找一下……

⑽ jsp上傳一個文件夾下的所有文件

東西已經發到你郵箱,注意查收,不過這個事多文件上傳,需要你選中文塵畢件才行猜可以上傳,不能直接選中文件夾上傳,不過可以實現你所要求的功派帶芹能!