求一份关于javaweb中的资源上传与下载的模块代码,,,,,,,,,,,,,
这个是上传的代码
package demo;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class FileUploadAction extends ActionSupport{
private File file;
private String fileContentType;//这三个参数全部不可以修改
private String fileFileName;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
@Override
public String execute() throws Exception {
String realPath = ServletActionContext.
getServletContext().getRealPath("/wenjian");
File mulu = new File("c:/abc");
if(!mulu.exists()){
mulu.mkdirs();//如果目录不存在,则创建
}
FileUtils.copyFile(file, new File(mulu, fileFileName));
return SUCCESS;
}
}
action配置
/index.jsp
/index.jsp
<!-- 文件类型过滤 -->
text/plain,text/xml,image/bmp,image/png,image/gif,image/jpeg
<!-- 单个文件大小, 以字节为单位 -->
1024000
<!-- 默认拦截器必须放在fileUpload之后,否则无效 -->
</action>
记得点赞
这个也跟框架有关,,看你用什么框架
ssh 框架的下载
package demo;
import java.io.File;
import java.io.InputStream;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class DownLoadAction extends ActionSupport{
private String filename;//文件名
public String getFilename() {
return reCode(filename);
}
public void setFilename(String filename) {
this.filename = filename;
}
public InputStream getDownloadFile()throws Exception{//被下载的文件的路径
String path="/wenjian/"+filename;
return ServletActionContext.getServletContext().getResourceAsStream(path);
}
@Override
public String execute() throws Exception {//获得那个下载后文件真实路径
String realpath=ServletActionContext.getServletContext().getRealPath("/wenjian/"+filename);
File f=new File(realpath);
if (!f.exists()){
return "error";
}
return "success";
}
/**编码问题**/
private String reCode(String str) {
HttpServletRequest request = ServletActionContext.getRequest();
String Agent = request.getHeader("User-Agent");
String filename = str;
if (null != Agent) {
Agent = Agent.toLowerCase();
try {
if (Agent.indexOf("firefox") != -1) {
filename = new String(str.getBytes(), "iso8859-1");
} else if (Agent.indexOf("msie") != -1) {
filename = java.net.URLEncoder.encode(str, "UTF-8");
} else {
filename = java.net.URLEncoder.encode(str, "UTF-8");
}
} catch (Exception e) {
e.printStackTrace();
}
}
return filename;
}
}
action的配置
<action name="xiazai" class="com.hnjing.cmp.bgyp.action.DownloadAction">
<result type="stream">
<param name="contentDisposition">attachment;filename=${fileName}</param>
<param name="inputName">downloadFile</param>
</result>
</action>
<action name="upload" class="demo.FileUploadAction">
<result>/index.jsp</result>
<result name="input">/index.jsp</result>
<interceptor-ref name="fileUpload">
<!-- 文件类型过滤 -->
<param name="allowedTypes">text/plain,text/xml,image/bmp,image/png,image/gif,image/jpeg</param>
<!-- 单个文件大小, 以字节为单位 -->
<param name="maximumSize">1024000</param>
</interceptor-ref>
<!-- 默认拦截器必须放在fileUpload之后,否则无效 -->
<interceptor-ref name="defaultStack" />
</action>
怎么不用Spring?很简单!