亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

nodejs獲取圖片數據顯示不出來

nodejs獲取圖片數據顯示不出來

<!----html頁面--> <!DOCTYPE?html> <html> <head> <meta?charset="utf-8"?/> <meta?http-equiv="X-UA-Compatible"?content="IE=edge"> <title>上傳文件</title> <meta?name="viewport"?content="width=device-width,?initial-scale=1"> </head> <body>???? 文件:<input?type="file"?multiple?id="fileList"> <br> <table?border="2"> <caption>文件詳情</caption> <thead> <tr> <th>文件名</th> <th>類型</th> <th>大小(/kb)</th> <th>上傳</th> <th>下載</th> </tr> </thead> <tbody?id="content">???????????????? </tbody> </table> <div?id="content"> </div> <script?src="ajax.js"></script> <script> let?files=document.getElementById('fileList'), content=document.getElementById('content'), arr=['name','type','size'], index=0; fileArr=[];//存儲文件 files.onchange=function(event){ let?files=this.files, len=files.length; if(len){ for(let?f=0;f<len;f++){???????????????????? let?file=files[f],???????????????????????????????????????? tr?=?content.insertRow(index++);???????????????????????????????? for?(let?x?=?0;?x?<?5;?x++)?{???????????????????????????? let?td?=?tr.insertCell(x);?????????????????????????????????????????????????????????? if(x>=arr.length){ ??if(x==3)td.innerHTML='<a?href="javascript:;"?id="'+index+'"?onclick="up()">上傳</a>'; ??if(x==4)td.innerHTML='<a?href="javascript:;"?onclick="down()">下載</a>' }else{ td.innerHTML?=?file[arr[x]]; }?????????????????????????????????????????????????????????? } fileArr.push(file); } }???????????? } function?up(){ ??let?index=(event.target.id)-1, data=fileArr[index], url='http://localhost:7000/upload'; ajax({ url:url, data:data }) } </script> </body> </html> ajax頁面 ========================================== function?ajax(obj)?{ ????let?{url,data}=obj; ????if?(XMLHttpRequest) ????????xhr?=?new?XMLHttpRequest(); ????else?if?(ActiveXObject){ ????????xhr?=?new?ActiveXObject('Micorsoft.HTTP');? ????}??????????????? ????????xhr.open('post',?url,?true);? ????????xhr.setRequestHeader('Content-Type',?'application/x-www-form-urlencoded'); ????????//xhr.send(data);????????????????? ???? ???let?reader?=?new?FileReader(),?type?=?data.type; ????console.log(type) ????if?(data.type.indexOf('text')?>?-1)//文本文件 ????????reader.readAsText(data); ????else?if?(data.type.indexOf('image')?>?-1)//圖片文件 ????????reader.readAsDataURL(data); ????reader.onload?=?function?()?{???????? ????????xhr.send(`name=${data.name}&type=${data.type}&file=${reader.result}`); ????}? ????????xhr.onreadystatechange?=?function?()?{ ????????if?(xhr.readyState?==?4)?{ ????????????if?(xhr.status?==?200?||?xhr.status?==?304)?{ ????????????????alert(xhr.responseText) ????????????} ????????} ????} } <!--后端服務器nodejs--> ================================================================= const?express?=?require('express'), ????bodyparser?=?require('body-parser'), ????fs?=?require('fs'), ????app?=?express(); app.use(bodyparser.json({?limit:?'50mb'?})); app.use(bodyparser.urlencoded({?limit:?'50mb',?extended:?true?})); //判斷目錄是否存在 let?url?=?__dirname?+?'/temp_up/'; fs.exists(url,(exists)=>{ ????if(!exists)fs.mkdir(url); }) app.post('/upload',?(req,?res)?=>?{ ????res.setHeader("Access-Control-Allow-Origin",?"*"); ???????????let?{name,type,file}=req.body;??????????? ????if?(type.includes('text')){ ????????fs.writeFile(url+name,file,'utf-8',(err)=>{ ????????????if(err)console.log('寫入失敗!')???????????? ????????}) ????}else?if(type.includes('image')){ ????????file?=?file.substring(23);??????????????????? ????????fs.writeFile(url+name,?file,?'base64',?(err)?=>?{ ????????????????????//沒有報錯,圖片不正顯示,why??? ????????????????????if?(err)?console.log(err) ????????}) ????} ????res.send('success!') ????})???????? ????? app.listen(7000,?()?=>?{ ????console.log('server?running?on?7000....'); }) //重點在服務端代碼中,圖片文件讀取后寫入文件顯示不出來,怎么辦????
查看完整描述

1 回答

?
橋本奈奈未

TA貢獻436條經驗 獲得超108個贊

文件的話還需要依賴包,比如multer

查看完整回答
反對 回復 2018-07-31
  • 1 回答
  • 0 關注
  • 3176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號