国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

React+ajax+java實現(xiàn)上傳圖片并預覽功能

2024-09-01 08:27:12
字體:
來源:轉載
供稿:網友

之前有在網上找ajax上傳圖片的資料,大部分的人寫得都是用jQuery,但是在這里用JQuery就大才小用了,所以我就自己寫了,先上圖。

由上圖,首先點擊上面的選擇文件,在選擇圖片之后,將會自動上傳圖片到服務器,并且返回圖片名字和圖片在服務器的路徑,然后在頁面顯示文件名字和圖片。

源碼:ajax上傳預覽

React中:

import React from 'react';import Http from './http'const URL = 'http://localhost:8080/fileuploadExample/UploadServlet';export default class App extends React.Component { constructor(props) {  super(props);  this.state = {   uploadedFile: "",   uploadedFileGetUrl: ''  }; } error() {  alert('error') } callback(result) {  this.setState({   uploadedFile: result.uploadedFile,   uploadedFileGetUrl: result.uploadedFileGetUrl  }); } handleImageUpload(e) {  e.preventDefault()  let file = e.target  Http.post(URL, file, this.callback.bind(this), this.error) } render() {  return (   <div>    <input type="file" onChange={this.handleImageUpload.bind(this)}/>    <div>     {this.state.uploadedFileGetUrl === '' ? null :      <div>       <p>{this.state.uploadedFile}</p>       <img src={this.state.uploadedFileGetUrl} alt="你選擇的圖片"/>      </div>}    </div>   </div>  ) }}

自己封裝的Ajax代碼:

var Http = (function() { var http = {}; if (typeof window.XMLHttpRequest === "undefined") {  window.XMLHttpRequest = function() {   // 如果是i5就用Microsoft,其他就用Msxml2   return new window.ActiveXObject(navigator.userAgent     .indexOf("MSIE 5") >= 0 ? "Microsoft.XMLHTTP"     : "Msxml2.XMLHTTP");  }; } http.post = function(url, data, callback, error) {  if (typeof data === "function") {//data可以不穿值   callback = data;   data = null;  }  var timeout = setTimeout(function() {//超時設置   error();  }, 10000);  var xhr = new XMLHttpRequest();  xhr.open('post', url);  xhr.onreadystatechange = function() {   if (xhr.readyState === 4) {    clearTimeout(timeout);//清除超時    if (xhr.status === 200){     //alert(xhr.responseText);     callback(JSON.parse(xhr.responseText));//調用回調函數    } else {     error();    }    xhr = null;// 刪除對象,防止內存溢出   }  };  xhr.onerror = function() {//如果產生了錯誤   clearTimeout(timeout);   error();  };  xhr.send(http.formDataCode(data)); }; http.formDataCode = function(data) {  var fd = new FormData();  if (!data) {   return null;  }  for ( var key in data) {   if(data.files){    var file=data.files[0];    fd.append("image", file);   }else{    fd.append(key, data[key]);   }  }  return fd; } return http;})();export default Http

在java后臺上傳圖片方面,網上有很多例子都可以用,我借鑒的是ajax異步文件上傳,servlet處理,含demo這篇,有興趣可以看一下:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 博野县| 临颍县| 绥棱县| 萍乡市| 辽阳市| 乌拉特中旗| 潮州市| 四平市| 淮阳县| 利川市| 新绛县| 台山市| 林周县| 攀枝花市| 阿城市| 延庆县| 宁河县| 汉中市| 封开县| 铁岭县| 温宿县| 陆丰市| 阿荣旗| 乌恰县| 安义县| 楚雄市| 邯郸市| 东乡县| 德阳市| 永新县| 崇义县| 湖北省| 长沙县| 内黄县| 佛冈县| 连云港市| 莫力| 建平县| 大田县| 手游| 乌兰察布市|