js 獲取input type=file 文件,並且上傳

 html頁面:

<input type="file" class="inputPic" allowexts="gif,jpeg,jpg,png,bmp" accept="image/*">

js文件: 

	$(".inputPic").change(function() {
		var serviceUrl = getProjectURL();
		var userguid = $("#userguid").val();
		var url = serviceUrl + "/myinformation/uploadheadimg";
		var form = new FormData();
		var file=$(".inputPic")[0].files;
		form.append("myfile", new Blob(file));
		form.append("userguid", userguid);
		var xhr = new XMLHttpRequest(); 
		xhr.open("post", url, true); // po
		xhr.upload.onloadstart = function() {// 上傳開始執行方法
			ot = new Date().getTime(); // 設置上傳開始時間
			oloaded = 0;// 設置上傳開始時,以上傳的文件大小爲0
		};
		xhr.send(form); // 開始上傳,發送form數據
		xhr.responseText = function(res) {
			console.log(res);
		}
		xhr.onreadystatechange = function(response) {
			console.log(response);
			if (response.target.readyState == '4') {
				
				var result = JSON.parse(response.target.response);
				if (Number(result.data) == 0) {
					alert(result.msg);
				} else {
					alert("封面上傳成功");
					$("#cropperModel").modal('hide');
				}
			}
		}
	});

java後臺:

	@ResponseBody
	@RequestMapping("/uploadheadimg")
	public JSONObject uploadheadimg(HttpServletRequest request, HttpSession session) {
		try {

			System.out.println("開始上傳頭像......");
			
			String newFileName = null;
			String userguid = request.getParameter("userguid");
		    System.out.println(userguid);
			UserInfo userinfo=userService.getUserByGuid(userguid);

			
			
			SysConfig config = configService.getByName("isuptoaliyun");

			if (ServletFileUpload.isMultipartContent(request)) {

				if ("0".equals(config.getConfigvalue())) {

					MultipartHttpServletRequest fileUpload = (MultipartHttpServletRequest) request;
					MultipartFile multifile = fileUpload.getFile("myfile");
					String filetype = multifile.getContentType();
					String realPath = PropertiesUtil.getValue("FILEPATH", "fileconfig.properties");
					if (filetype.contains("png")) {
						newFileName = sdf.format(new Date()) + "_"+ userguid.substring(userguid.length() - 6, userguid.length()) + ".png";
					} else if (filetype.contains("jpg")) {
						newFileName = sdf.format(new Date()) + "_"+ userguid.substring(userguid.length() - 6, userguid.length()) + ".jpg";
					}
					File targetFile = new File(realPath, newFileName);
					multifile.transferTo(targetFile);
					FileInfo fileinfo = new FileInfo();
					fileinfo.setAddtime(new Date());
					fileinfo.setFilepath(targetFile.getAbsolutePath().replace("\\", "&&"));
					String ipconfig = PropertiesUtil.getValue("IPCONFIG", "fileconfig.properties");
					fileinfo.setFileurl("http://" + ipconfig + "/upload/" + newFileName);
					fileinfo.setFilesize(request.getContentLength());
					fileinfo.setRowguid(UUID.randomUUID().toString());
					fileinfo.setCliengguid(UUID.randomUUID().toString());
					fileService.addFileInfo(fileinfo);
					userinfo.setLogoguid(fileinfo.getCliengguid());
					userinfo.setLogopicurl(fileinfo.getFileurl());
					userService.updateUser(userinfo);
				} else {

					String endpoint = ConfigUtil.getProperty("endpoint");

					String accessKeyId = ConfigUtil.getProperty("accessKeyId");

					String accessKeySecret = ConfigUtil.getProperty("accessKeySecret");

					String bucketName = ConfigUtil.getProperty("bucketName");

					String firstKey = "headimg/"+UUID.randomUUID().toString();

					OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
					try {
						MultipartHttpServletRequest fileUpload = (MultipartHttpServletRequest) request;
						MultipartFile multifile = fileUpload.getFile("myfile");
						if (ossClient.doesBucketExist(bucketName)) {
						} else {
							ossClient.createBucket(bucketName);
						}
						InputStream is1 = new ByteArrayInputStream(multifile.getBytes());
						PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,firstKey,is1);
						ObjectMetadata metadata = new ObjectMetadata();
						metadata.setObjectAcl(CannedAccessControlList.PublicRead);
						putObjectRequest.setMetadata(metadata);
						ossClient.putObject(putObjectRequest);
						OSSObject ob = ossClient.getObject(bucketName,firstKey);
						String url = ob.getResponse().getUri();
						

						FileInfo fileinfo = new FileInfo();
						fileinfo.setRowguid(UUID.randomUUID().toString());
						fileinfo.setFilesize(request.getContentLength());
						fileinfo.setAddtime(new Date());
						fileinfo.setFilepath(firstKey);
						fileinfo.setFileurl(url);
						fileinfo.setIstoali("1");
						fileinfo.setCliengguid(UUID.randomUUID().toString());
						fileService.addFileInfo(fileinfo);
						userinfo.setLogoguid(fileinfo.getCliengguid());
						userinfo.setLogopicurl(fileinfo.getFileurl());
						userService.updateUser(userinfo);

					} catch (OSSException oe) {
						oe.printStackTrace();
					} catch (ClientException ce) {
						ce.printStackTrace();
					} catch (Exception e) {
						e.printStackTrace();
					} finally {
						ossClient.shutdown();
					}

				}
			}
			return BuildJsonOfObject.getSuccessJSONString(MSG.SUCCESSCODE,MSG.SystemSuccess);
		} catch (Exception e) {
			e.printStackTrace();
			return BuildJsonOfObject.getErrorJSONString(MSG.SUCCESSCODE,e.getMessage());

		}

	}

希望對你有所幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章