javaweb如何实现图片上传,数据库只存储路径,服务器存储图片 如题,初初接触JAVA WEB,要求有代码,前端jsp和WEB端都要喔,谢谢大虾 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是将自己的电脑当服务器,可以直接在web下建个文件夹,将图片存入,图片地址存到表中;如果有服务器,可以在服务器上装一个ftp,配置下要存放的图片位置,再将图片存入,ftp地址存到表中 如果用springmvc接收图片 百度可以搜出一大推 推荐uploadify<script> $(function() { $("#uploadify").uploadify({ debug : false, swf : a+'/css/upload_tx/uploadify.swf', //swf文件路径 method : 'post', // 提交方式 uploader : a+'/upload/up_tx', // 服务器端处理该上传请求的程序(servlet, struts2-Action) cancel : a+'/css/upload_tx/uploadify-cancel.png', preventCaching : true, // 加随机数到URL后,防止缓存 buttonCursor : 'hand', // 上传按钮Hover时的鼠标形状 // buttonImage : 'img/.....png', // 按钮的背景图片,会覆盖文字 buttonText : '选择头像图片' , //按钮上显示的文字,默认”SELECTFILES” height : 30 , // 30 px width : 120 , // 120 px fileObjName : 'filedata', //文件对象名称, 即属性名 fileSizeLimit : 10000, // 文件大小限制, 100 KB fileTypeDesc : 'any' , //文件类型说明 any(*.*) fileTypeExts : '*.*;*.jpg;*.png;*.gif', // 允许的文件类型,分号分隔 formData : {'id':'1', 'name':'myFile'} , //指定上传文件附带的其他数据。也动态设置。可通过getParameter()获取 multi : false , // 多文件上传 progressData : 'speed', // 进度显示, speed-上传速度,percentage-百分比 queueID : 'fileQueue',//上传队列的DOM元素的ID号 queueSizeLimit : 99 , // 队列长度 removeCompleted : true , // 上传完成后是否删除队列中的对应元素 removeTimeout : 1 , //上传完成后多少秒后删除队列中的进度条, requeueErrors : true, // 上传失败后重新加入队列 uploadLimit : 20, // 最多上传文件数量 successTimeout : 30 ,//表示文件上传完成后等待服务器响应的时间。超过该时间,那么将认为上传成功。 // 在文件被移除出队列时触发 //onCancel : function(file) { alert( 'The file ' + file.name + ' was cancelled!' ); }, // 在调用cancel方法且传入参数’*’时触发 //onClearQueue : function (queueItemCount) { alert( queueItemCount + ' files were removed from the queue!' ); }, // 打开文件对话框 关闭时触发 onDialogClose : function (queueData) { /* alert( "文件对话窗口中选了几个文件:" + queueData.filesSelected + "---" + "队列中加了几个文件:" + queueData.filesQueued + "---" + "队列中被替换掉的文件数:" + queueData.filesReplaced + "---" + "取消掉的文件数:" + queueData.filesCancelled + "---" + "上传出错的文件数:" + queueData.filesErrored ); */ }, // 选择文件对话框打开时触发 onDialogOpen : function () { /*alert( 'please select files' ) */ }, // 没有兼容的FLASH时触发 onFallback : function(){ alert( 'Flash was not detected!' ) ;}, // 每次初始化一个队列时触发, 即浏览文件后, 加入一个队列 //onInit : function (instance) { alert( 'The queue ID is ' + instance.settings.queueID ) }, // 上传文件处理完成后触发(每一个文件都触发一次), 无论成功失败 //onUploadComplete : function(file){ alert( 'The file ' + file.name + ' uploaded finished!' ) }, // 上传文件失败触发 onUploadError : function(file, errorCode, errorMsg, errorString){ /* alert( file.name + ' upload failed! ' + 'errorCode: ' + errorCode + 'errorMsg:' + errorMsg + 'errorString:' + errorString );*/ }, // 在每一个文件上传成功后触发 onUploadSuccess : function(file, data, response) { // alert( // file.name + ' is uploaded succeed! ' + // ' server-side returned data:' + data + //' response: ' + response //); } }); });<script><div class="m-top-sm text-centers" id="uptx" style="display:none"> <div id="fileQueue"></div> <span id="uploadify"></span> </div>controller@RequestMapping(value = "/up_tx", method = RequestMethod.POST) public String uploadFile(HttpServletRequest request, HttpServletResponse response) throws IOException { this.request = request; String responseStr = ""; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; // 获取前台传值 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); // 获取上传文件存放的 目录 , 无则创建 String configPath = request.getSession().getServletContext().getRealPath( "/images/usertx/" ); // 创建文件夹 File file = new File(configPath); if (!file.exists()) { file.mkdirs(); } String fileName = null; for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { // 上传文件名 // System.out.println("key: " + entity.getKey()); MultipartFile mf = entity.getValue(); fileName = mf.getOriginalFilename(); String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt; responseStr = "/images/usertx/" + newFileName ; File uploadFile = new File(configPath+"/" + newFileName); try { FileCopyUtils.copy(mf.getBytes(), uploadFile); } catch (IOException e) { responseStr = "上传失败"; e.printStackTrace(); } } response.setHeader("Content-type", "text/html;charset=UTF-8"); // 这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859 response.setCharacterEncoding("UTF-8"); response.getWriter().write(responseStr); return null; } 前端<input type="file" name="file"/>后端private File file;FileUtils.copyFile(file, file2); public class void{} 求一份jsp+servlet的信息管理系统代码,谢了 如何在tomcat6.0 中配置DBCP数据源 dwr在weblogic9.2不能运行 forward和redirect的具体区别 工作室网站设计,需求功能。 SOS------紧急求助,我上当了,这个包在哪里能找到 求职,有大哥大姐帮忙介绍吗? 定时任务的开启与关闭,为什么关闭不了定时器 ?????急 关于queryString的问题,大送分!!!来呀来呀 如何在JSP页面中显示ORACAL数据库中的繁体中文? 用SwaggerUI的跨域问题 百度地图,多点路线规划
如果有服务器,可以在服务器上装一个ftp,配置下要存放的图片位置,再将图片存入,ftp地址存到表中
<script>
$(function() {
$("#uploadify").uploadify({
debug : false, swf : a+'/css/upload_tx/uploadify.swf', //swf文件路径
method : 'post', // 提交方式
uploader : a+'/upload/up_tx', // 服务器端处理该上传请求的程序(servlet, struts2-Action)
cancel : a+'/css/upload_tx/uploadify-cancel.png',
preventCaching : true, // 加随机数到URL后,防止缓存 buttonCursor : 'hand', // 上传按钮Hover时的鼠标形状
// buttonImage : 'img/.....png', // 按钮的背景图片,会覆盖文字
buttonText : '选择头像图片' , //按钮上显示的文字,默认”SELECTFILES”
height : 30 , // 30 px
width : 120 , // 120 px fileObjName : 'filedata', //文件对象名称, 即属性名
fileSizeLimit : 10000, // 文件大小限制, 100 KB
fileTypeDesc : 'any' , //文件类型说明 any(*.*)
fileTypeExts : '*.*;*.jpg;*.png;*.gif', // 允许的文件类型,分号分隔
formData : {'id':'1', 'name':'myFile'} , //指定上传文件附带的其他数据。也动态设置。可通过getParameter()获取
multi : false , // 多文件上传
progressData : 'speed', // 进度显示, speed-上传速度,percentage-百分比
queueID : 'fileQueue',//上传队列的DOM元素的ID号
queueSizeLimit : 99 , // 队列长度
removeCompleted : true , // 上传完成后是否删除队列中的对应元素
removeTimeout : 1 , //上传完成后多少秒后删除队列中的进度条,
requeueErrors : true, // 上传失败后重新加入队列
uploadLimit : 20, // 最多上传文件数量 successTimeout : 30 ,//表示文件上传完成后等待服务器响应的时间。超过该时间,那么将认为上传成功。
// 在文件被移除出队列时触发
//onCancel : function(file) { alert( 'The file ' + file.name + ' was cancelled!' ); },
// 在调用cancel方法且传入参数’*’时触发
//onClearQueue : function (queueItemCount) { alert( queueItemCount + ' files were removed from the queue!' ); }, // 打开文件对话框 关闭时触发
onDialogClose : function (queueData) {
/* alert(
"文件对话窗口中选了几个文件:" + queueData.filesSelected + "---" +
"队列中加了几个文件:" + queueData.filesQueued + "---" +
"队列中被替换掉的文件数:" + queueData.filesReplaced + "---" +
"取消掉的文件数:" + queueData.filesCancelled + "---" +
"上传出错的文件数:" + queueData.filesErrored
); */
},
// 选择文件对话框打开时触发
onDialogOpen : function () { /*alert( 'please select files' ) */ },
// 没有兼容的FLASH时触发
onFallback : function(){ alert( 'Flash was not detected!' ) ;},
// 每次初始化一个队列时触发, 即浏览文件后, 加入一个队列
//onInit : function (instance) { alert( 'The queue ID is ' + instance.settings.queueID ) },
// 上传文件处理完成后触发(每一个文件都触发一次), 无论成功失败
//onUploadComplete : function(file){ alert( 'The file ' + file.name + ' uploaded finished!' ) }, // 上传文件失败触发
onUploadError : function(file, errorCode, errorMsg, errorString){
/*
alert(
file.name + ' upload failed! ' +
'errorCode: ' + errorCode +
'errorMsg:' + errorMsg +
'errorString:' + errorString
);*/
},
// 在每一个文件上传成功后触发
onUploadSuccess : function(file, data, response) {
// alert(
// file.name + ' is uploaded succeed! ' +
// ' server-side returned data:' + data +
//' response: ' + response
//);
} });
});
<script>
<div class="m-top-sm text-centers" id="uptx" style="display:none">
<div id="fileQueue"></div> <span id="uploadify"></span>
</div>
controller@RequestMapping(value = "/up_tx", method = RequestMethod.POST)
public String uploadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
this.request = request;
String responseStr = "";
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
// 获取前台传值
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); // 获取上传文件存放的 目录 , 无则创建
String configPath = request.getSession().getServletContext().getRealPath( "/images/usertx/" ); // 创建文件夹
File file = new File(configPath);
if (!file.exists()) {
file.mkdirs();
}
String fileName = null;
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 上传文件名
// System.out.println("key: " + entity.getKey());
MultipartFile mf = entity.getValue();
fileName = mf.getOriginalFilename(); String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
responseStr = "/images/usertx/" + newFileName ;
File uploadFile = new File(configPath+"/" + newFileName);
try {
FileCopyUtils.copy(mf.getBytes(), uploadFile);
} catch (IOException e) {
responseStr = "上传失败";
e.printStackTrace();
} }
response.setHeader("Content-type", "text/html;charset=UTF-8");
// 这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
response.setCharacterEncoding("UTF-8");
response.getWriter().write(responseStr);
return null;
}
后端private File file;
FileUtils.copyFile(file, file2);
public class void{}