html頁面上傳圖片到七牛雲。javaweb上傳圖片到七牛雲

目的:使用html頁面上傳圖片到七牛雲。(使用了springmvc框架)

準備工作:

1、springmvc搭建:https://blog.csdn.net/Tomwildboar/article/details/81585722

2、七牛雲  對象儲存創建 https://blog.csdn.net/Tomwildboar/article/details/81632859

3、springmvc上傳圖片:https://blog.csdn.net/Tomwildboar/article/details/81637484

3、相對應的jar包:https://download.csdn.net/download/tomwildboar/10603378

注:如果你不想這麼複雜,只是想用java上傳圖片/文件到七牛雲:https://blog.csdn.net/Tomwildboar/article/details/81665875

 

項目結構

 index.html頁面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<form action="http://localhost:8080/qiniu-upload-img/bbb.action" method="post" enctype="multipart/form-data">
		<input type="file" name="img" value="請選擇文件"/> <br />
		<input type="submit" />
			
	</form>
	
</body>
</html>

success and fail 頁面

 springmvc.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
        
   	<!-- 掃描@controler @Service 等註解 -->
    <context:component-scan base-package="com.ziyang.upload.controller" />
        
     <mvc:annotation-driven/>
     
     
     <!-- 上傳圖片配置實現類 -->
     <!-- id和class 都是固定的 -->
     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     	<!-- 上傳圖片的大小 -->
     	<property name="maxUploadSize" value="100000000000"></property>
     </bean>
     
     
     <!-- 視圖解釋器 -->
     <!-- 用於配置訪問地址的前後綴  -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     	<property name="prefix" value="/"/>
     	<property name="suffix" value=".html"/>
     </bean> 
</beans>

其他的配置在上面那個 springmvc入門配置已經說明了

Uploadcontroller.java

package com.ziyang.upload.controller;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;




@Controller
public class UploadController {
	
	@RequestMapping(value = "/bbb.action")
	public String test1(MultipartFile img) throws IOException{
		
		//方法一 獲取相對應的流
		InputStream stream = img.getInputStream();

			
		//構造一個帶指定Zone對象的配置類
		Configuration cfg = new Configuration(Zone.zone0());
		//...其他參數參考類註釋
		UploadManager uploadManager = new UploadManager(cfg);
		//...生成上傳憑證,然後準備上傳
		String accessKey = "3m7pjiiPNJ3GNUk0VTsFl8kNx5lAHfl8TK1Lbvky";
		String secretKey = "m1ttMzWgzxYUOv2KUKBnRUmfyxLs5IQqnqeD03q4";
		String bucket = "1140459171-xiaodaoxian";
		//默認不指定key的情況下,以文件內容的hash值作爲文件名
		String key = UUID.randomUUID().toString().replaceAll("\\-", "");
		try {
		    Auth auth = Auth.create(accessKey, secretKey);
		    String upToken = auth.uploadToken(bucket);
		    try {
		        Response response = uploadManager.put(stream,key,upToken,null, null);
		        //解析上傳成功的結果
		        DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
		        System.out.println(putRet.key);
		        System.out.println(putRet.hash);
		        
		    } catch (QiniuException ex) {
		        Response r = ex.response;
		        System.err.println(r.toString());
		        try {
		            System.err.println(r.bodyString());
		        } catch (QiniuException ex2) {
		        	return "fail";
		        }
		    }
		} catch (Exception ex) {
			return "fail";
		}
		
		return "success";
		
	}
	
}

測試

1、開啓tomcat

2、

 3、

 上傳成功。

 後臺打印結果:

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