日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 跨域上传_java后台图片跨域上传图片 文件

發(fā)布時(shí)間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 跨域上传_java后台图片跨域上传图片 文件 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

發(fā)送方

@ResponseBody

@RequestMapping(value="/imgUpLoadNewOneKuaYu")public String imgUpLoadNewOneKuaYu(HttpServletRequest request) throwsIOException {

String urlStr= "http://localhost:9080/no-js/admin/upload";

Map textMap = new HashMap();

MultipartHttpServletRequest multiRequest= (MultipartHttpServletRequest) request;//流的數(shù)據(jù)*//取得request中的所有文件名

Iterator iter =multiRequest.getFileNames();

Map fileMap = new HashMap();if(iter.hasNext()){//取得上傳文件

MultipartFile file =multiRequest.getFile(iter.next());if(file != null){//取得當(dāng)前上傳文件的文件名稱

String myFileName =file.getOriginalFilename();

InputStream fileInputStream=file.getInputStream();

fileMap.put(myFileName, fileInputStream);

}

}

String ret=FileUpLoadNew.formUpload(urlStr, textMap, fileMap);

System.out.println(ret);returnret;

}

packagenet.sahv.bdyz.util;importjava.io.BufferedReader;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.FileInputStream;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;importjava.util.Iterator;importjava.util.Map;public classFileUpLoadNew {/***@paramurlStr

*@paramtextMap

*@paramfileMap

*@return

*/

public static String formUpload(String urlStr, Map textMap, MapfileMap) {

String res= "";

HttpURLConnection conn= null;

String BOUNDARY= "---------------------------123821742118716"; //boundary就是request頭和上傳文件內(nèi)容的分隔符

try{

URL url= newURL(urlStr);

conn=(HttpURLConnection) url.openConnection();

conn.setConnectTimeout(5000);

conn.setReadTimeout(30000);

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);

conn.setRequestMethod("POST");

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");

conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" +BOUNDARY);

OutputStream out= newDataOutputStream(conn.getOutputStream());//textMap:如果傳送的是文本內(nèi)容

if (textMap != null) {

StringBuffer strBuf= newStringBuffer();

Iterator> iter =textMap.entrySet().iterator();while(iter.hasNext()) {

Map.Entry entry =iter.next();

String inputName=(String) entry.getKey();

String inputValue=(String) entry.getValue();if (inputValue == null) {continue;

}

strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n");

strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"\r\n\r\n");

strBuf.append(inputValue);

}

out.write(strBuf.toString().getBytes());

}//fileMap:如果傳送的是文件流

if (fileMap != null) {

Iterator> iter =fileMap.entrySet().iterator();while(iter.hasNext()) {

Map.Entry entry =iter.next();

String inputName=(String) entry.getKey();

FileInputStream inputValue=(FileInputStream) entry.getValue();if (inputValue == null) {continue;

}

String contentType= "image/png";

StringBuffer strBuf= newStringBuffer();

strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n");

strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"; filename=\"" + inputName + "\"\r\n");

strBuf.append("Content-Type:" + contentType + "\r\n\r\n");

out.write(strBuf.toString().getBytes());

DataInputStream in= newDataInputStream(inputValue);int bytes = 0;byte[] bufferOut = new byte[1024];while ((bytes = in.read(bufferOut)) != -1) {

out.write(bufferOut,0, bytes);

}

in.close();

}

}byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();

out.write(endData);

out.flush();

out.close();//讀取返回?cái)?shù)據(jù)

StringBuffer strBuf = newStringBuffer();

BufferedReader reader= new BufferedReader(newInputStreamReader(conn.getInputStream()));

String line= null;while ((line = reader.readLine()) != null) {

strBuf.append(line).append("\n");

}

res=strBuf.toString();

reader.close();

reader= null;

}catch(Exception e) {

System.out.println("發(fā)送POST請(qǐng)求出錯(cuò)。" +urlStr);

e.printStackTrace();

}finally{//最后關(guān)閉鏈接

if (conn != null) {

conn.disconnect();

conn= null;

}

}returnres;

}

}

接收方

package com.lyc.noJs.controller;

import com.google.common.base.Splitter;

import com.lyc.noJs.util.ImgMD5Util;

import lombok.extern.slf4j.Slf4j;

import org.joda.time.DateTime;

import org.springframework.stereotype.Controller;

import org.springframework.util.MultiValueMap;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import org.springframework.web.multipart.MultipartFile;

import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.io.*;

import java.security.NoSuchAlgorithmException;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import java.util.Set;

@Controller

@RequestMapping("/admin")

@Slf4j

public class UploadController {

@ResponseBody

@RequestMapping(value = "/upload",method= RequestMethod.POST)

public String upload(MultipartHttpServletRequest multiRequest) throws UnsupportedEncodingException {

//圖片文件夾根路徑

//TODO

//這里的父路徑暫時(shí)是target路徑,在真實(shí)上線后,應(yīng)該將其改成其它路徑。

String uploadFilePath = multiRequest.getServletContext().getRealPath("/upload/");

//圖片文件夾日期路徑

String datePath = getDateFolderName() + "\\";

//圖片名稱

String imagePath = saveImage(multiRequest,uploadFilePath,datePath);

log.info(imagePath);

return imagePath;

}

/**

* 保存圖片

* @param multiRequest

* @param uploadFilePath

* @param datePath

* @return

* @throws UnsupportedEncodingException

*/

public String saveImage(MultipartHttpServletRequest multiRequest,String uploadFilePath,String datePath) throws UnsupportedEncodingException {

String imageNameHead = createImageNameHead();

String imageName = "";

//設(shè)置圖片的瀏覽為utf-8格式,防止圖片名稱亂碼

multiRequest.setCharacterEncoding("utf-8");

MultiValueMap multiFileMap = multiRequest.getMultiFileMap();

Set>> set = multiFileMap.entrySet();

Iterator>> iterator = set.iterator();

while(iterator.hasNext()){

Map.Entry> entry = iterator.next();

String imageNameEnd = getImageNameEnd(entry);

imageName = imageNameHead + "." + imageNameEnd;

List multipartFileList = entry.getValue();

MultipartFile multipartFile = multipartFileList.get(0);

//圖片文件的包路徑

String imagePath = uploadFilePath + datePath;

//如果文件夾創(chuàng)建失敗,則返回null

if(makeParentFolder(imagePath)){ //如果文件夾創(chuàng)建失敗,則返回false,否則返回true

//圖片文件的路徑

String imgFile = imagePath + imageName;

//如果文件創(chuàng)建失敗,則返回null

if(!makeImage(multipartFile,imgFile)){ //當(dāng)文件創(chuàng)建失敗時(shí),返回false,否則返回true

return null;

}

} else {

return null;

}

}

return datePath + imageName;

}

/**

* 創(chuàng)建圖片

* @param multipartFile

* @param imgFile

* @return

*/

public boolean makeImage(MultipartFile multipartFile,String imgFile){

File tempFile = new File(imgFile);

if(tempFile != null){

//如果原圖片不存在,則生成圖片

if(!tempFile.exists()){

try {

log.info("1");

multipartFile.transferTo(tempFile);

} catch (IOException e) {

e.printStackTrace();

}

}

return true;

}

return false;

}

/**

* 創(chuàng)建父文件路徑

* @param imagePath

* @return

*/

public boolean makeParentFolder(String imagePath){

File parentFile = new File(imagePath);

if(parentFile != null){

while (!parentFile.exists()){

//批量生成全部的父文件路徑

parentFile.mkdirs();

}

return true;

}

return false;

}

/**

* 文件夾生成規(guī)則

*/

public String getDateFolderName(){

DateTime dataTime = new DateTime();

String currentDate = dataTime.toString("yyyy\\MM\\dd");

return currentDate;

}

/**

* 創(chuàng)建圖片文件的文件名

* @return

*/

public String createImageNameHead(){

DateTime dataTime = new DateTime();

return String.valueOf(dataTime.getMillis());

}

}

總結(jié)

以上是生活随笔為你收集整理的java 跨域上传_java后台图片跨域上传图片 文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情吧 | 91成人在线免费视频 | 亚洲视频二 | 小泽玛利亚一区二区三区在线观看 | 日韩亚洲精品视频 | 亚洲精品三 | 精品国产乱码久久久久久蜜臀 | 日韩三级视频在线观看 | 中文字幕超清在线观看 | 欧美日本一道本 | 中日黄色片 | 国产一区二区在线免费 | 天天操网 | 在线视频啪 | 日韩一区中文 | 午夜久久久久久久久久久 | 国产男女无遮挡猛进猛出 | 国产中文字字幕乱码无限 | 国产高清二区 | 亚洲在线天堂 | 四虎8848精品成人免费网站 | 中文字幕第6页 | 免费美女毛片 | 久久精品一区二区三区黑人印度 | 在线黄色网页 | a级片视频网站 | 亚洲精品动漫在线观看 | 91美女高潮出水 | 九九热精品在线视频 | 三上悠亚一区二区 | 女生的胸无遮挡 | 国产精品入口66mio男同 | 天天爽天天爽 | 中文字幕免费在线播放 | av资源吧首页 | 欧美久久久影院 | 在线观看一级片 | 神马午夜dy888 | 欧美日韩 一区二区三区 | 五月天婷婷社区 | 国产福利片在线观看 | 久久精品人人 | 青青草视频污 | 日本高清视频在线播放 | 97精品国产97久久久久久粉红 | 希岛婚前侵犯中文字幕在线 | 久久午夜夜伦鲁鲁一区二区 | 和漂亮岳做爰3中文字幕 | 在线免费观看你懂的 | wwwjizzzcom| 九九天堂网 | 亚洲乱码国产乱码精品精大量 | 精品久久久久久久久中文字幕 | 欧美另类视频在线观看 | 亚洲第一淫片 | 国产精品xxx在线 | 麻豆免费网站 | 毛片一区二区三区 | 激情小说专区 | 国产天天综合 | 久精品国产| 国产第6页 | 肉体粗喘娇吟国产91 | 性的免费视频 | 欧美色女人 | 久久99国产精品久久99 | 国模在线观看 | 99999视频 | 女性喷水视频 | 国产永久免费观看 | 国产免费一区二区 | 国产又粗又黄视频 | 永久免费在线观看视频 | 影音先锋在线视频 | 国产精品扒开腿做爽爽爽a片唱戏 | 91色在线观看 | 天天综合在线视频 | 99自拍视频 | 无码gogo大胆啪啪艺术 | 精品国产丝袜一区二区三区乱码 | av青青草原 | 成人片黄网站色大片免费毛片 | 精品妇女一区二区三区 | 国产精品高潮AV无码 | 亚洲欧美一区二区在线观看 | 日韩欧美黄色片 | 亚洲啊啊啊啊啊 | 熟女高潮一区二区三区视频 | 麻豆免费看片 | 国模少妇一区二区 | 免费看日批视频 | 亚洲色成人www永久网站 | 精品日本一区二区三区在线观看 | 黄色一级大片在线免费看国产 | 九色蝌蚪9l视频蝌蚪9l视频 | 久久午夜激情 | 男生女生搞鸡视频 | 欧美日韩中文字幕在线观看 | 亚洲av无一区二区三区久久 |