摘要:圖片上傳,解析數(shù)據(jù),存儲文件。參考參考不處理數(shù)據(jù)不設(shè)置請求頭跨域編碼保留擴(kuò)展名文件大小存儲路徑解析數(shù)據(jù)獲取文件路徑修改之后的名字同步讀取文件存儲文件刪除文件
圖片上傳,解析formData數(shù)據(jù),存儲文件。
參考1 http://www.cnblogs.com/yuanke...
參考2 https://github.com/felixge/no...
index.html
test.js
$("button").on("click", function (e) { e.preventDefault() var obj = new FormData(); obj.append("img",$("input").get(0).files[0]); $.ajax({ url:"http://localhost:8081/test", type:"post", data:obj, processData:false, // 不處理數(shù)據(jù) contentType : false, // 不設(shè)置請求頭 cache:false, success:function(data){ console.log(data) } }) })
node app.js
const express = require("express") const fs = require("fs") const formidable = require("formidable") const app = express() const bodyParser = require("body-parser") app.use(bodyParser.urlencoded({ extended: false })) app.post("/test",function(req,res){ // 跨域 res.header("Access-Control-Allow-Origin", "*"); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With"); let form = new formidable.IncomingForm(); form.encoding = "utf-8"; // 編碼 form.keepExtensions = true; // 保留擴(kuò)展名 form.maxFieldsSize = 2 * 1024 * 1024; // 文件大小 form.uploadDir = "C:/Users/Administrator/Downloads" // 存儲路徑 form.parse(req,function(err,fileds,files){ // 解析 formData數(shù)據(jù) if(err){ return console.log(err) } let imgPath = files.img.path // 獲取文件路徑 let imgName = "./test." + files.img.type.split("/")[1] // 修改之后的名字 let data = fs.readFileSync(imgPath) // 同步讀取文件 fs.writeFile(imgName,data,function(err){ // 存儲文件 if(err){ return console.log(err) } fs.unlink(imgPath,function(){}) // 刪除文件 res.json({code:1}) }) }) }) app.listen(8081)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/82596.html
摘要:文件用來路由不同的服務(wù)器的有三個功能所以包含有三個模塊兒,開頭就引入了三個模塊兒,通過請求的路徑名稱我們路由到不同的處理模塊兒。鏈接到一個真實(shí)的服務(wù)器進(jìn)行域名解析,且始終使用網(wǎng)絡(luò)進(jìn)行查詢。 Node搭建DNS服務(wù)器的過程 接下來請深呼吸一大片代碼正奔涌而來,該項(xiàng)目托管在https://github.com/MaxMin-she... 請各位同仁大神view指導(dǎo)。1、route文件用來路...
摘要:前言在開發(fā)中,文件上傳是一個非常常見非常重要的功能。本文將介紹如何用處理上傳的文件。前端界面如下用戶從瀏覽器中選擇文件,點(diǎn)擊上傳,將發(fā)起請求到服務(wù)器,服務(wù)器將接受到的文件存儲在服務(wù)器硬盤中。 前言 在Web開發(fā)中,文件上傳是一個非常常見、非常重要的功能。本文將介紹如何用Node處理上傳的文件。 需求分析 由于現(xiàn)在前后端分離很流行,那么本文也直接采用前后端分離的做法。前端界面如下:sho...
摘要:在自己做一個簡單的后臺管理系統(tǒng)時,用的是作本地數(shù)據(jù)庫,然后用了的組件來實(shí)現(xiàn)圖片的上傳,中間有遇到那么點(diǎn)小坑,這里記錄下,比較坑的一點(diǎn)就是,不知道文件的命名不能帶空格,然后改了好久文件這里的話,就是簡單點(diǎn)的使用圖形界面框架的上傳組件,然后 在自己做一個簡單的后臺管理系統(tǒng)時,用的是node作本地數(shù)據(jù)庫,然后用了Element-ui的upload組件來實(shí)現(xiàn)圖片的上傳,中間有遇到那么點(diǎn)小坑,這...
摘要:網(wǎng)址功能單圖多圖上傳圖片上傳預(yù)覽上傳進(jìn)度條分組上傳,分組查詢新建分組,刪除分組刪除圖片選擇圖片目錄結(jié)構(gòu)前端利用搭建,中引入子組件。實(shí)現(xiàn)分組的新增查詢刪除。利用模塊實(shí)現(xiàn)刪除文件功能。 公司要寫一些為自身業(yè)務(wù)量身定制的的組件,要基于Vue,寫完后擴(kuò)展了一下功能,選擇寫圖片上傳是因?yàn)樽约褐耙恢睂@個功能比較迷糊,所以這次好好了解了一下。演示在網(wǎng)址打開后的show.gif中。 使用技術(shù):Vu...
閱讀 1760·2021-11-23 09:51
閱讀 3486·2021-09-26 10:21
閱讀 894·2021-09-09 09:32
閱讀 992·2019-08-29 16:06
閱讀 3418·2019-08-26 13:36
閱讀 851·2019-08-26 10:56
閱讀 2644·2019-08-26 10:44
閱讀 1220·2019-08-23 14:04