javaweb如何实现图片上传,数据库只存储路径,服务器存储图片

xuehuiwangji 2017-07-15 05:48:06
如题,初初接触JAVA WEB,要求有代码,前端jsp和WEB端都要喔,谢谢大虾
...全文
7144 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
酸奶最甜了 2019-02-26
  • 打赏
  • 举报
回复 1

public class void{

}
低调的JVM 2017-07-19
  • 打赏
  • 举报
回复
你都有了思路了,跟着这个思路去写代码不就可以了
vswen5 2017-07-19
  • 打赏
  • 举报
回复
前端<input type="file" name="file"/> 后端private File file; FileUtils.copyFile(file, file2);
  • 打赏
  • 举报
回复
推荐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;
    }
qq_34273627 2017-07-19
  • 打赏
  • 举报
回复
如果用springmvc接收图片 百度可以搜出一大推
waxf523 2017-07-19
  • 打赏
  • 举报
回复
如果是将自己的电脑当服务器,可以直接在web下建个文件夹,将图片存入,图片地址存到表中; 如果有服务器,可以在服务器上装一个ftp,配置下要存放的图片位置,再将图片存入,ftp地址存到表中
李德胜1995 2017-07-15
  • 打赏
  • 举报
回复
多少钱???
我爱娃哈哈 2017-07-15
  • 打赏
  • 举报
回复

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧