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包文件,然后启动项目