当前位置:首页 » 文件传输 » 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上传一个文件夹下的所有文件

东西已经发到你邮箱,注意查收,不过这个事多文件上传,需要你选中文尘毕件才行猜可以上传,不能直接选中文件夹上传,不过可以实现你所要求的功派带芹能!