當前位置:首頁 » 文件管理 » nodeexpress上傳圖片

nodeexpress上傳圖片

發布時間: 2022-06-27 18:57:48

① nodejs用express.bodyParser上傳的時候怎麼創建一個和上傳文件名字一樣的文件夾

req.body.file.path是原文件名,用fs.mkdir創建文件夾,把文件存進去就好了。

② 如何設置 node express favicon.ico

瀏覽器調用Favicon的原則是首先在網頁所在的目錄下尋找Favicon.ico文件,如果沒有,便到網站的根目錄下尋找。
因此,在網頁中使用Favicon最簡單的辦法便是將製作好的圖標文件命名為Favicon.ico,然後將其上傳到網站的根目錄即可。
如果您需要將Favicon.ico放到其他目錄下,或者希望讓不同的網頁顯示不同的Favicon,就需要在網頁Html文件中做設定了,具體設置也很簡單,在Html中的<head>部分加入如下的代碼:
程序代碼: <link rel=」icon」 href=」/dir/favicon.ico」 mce_href=」/dir/favicon.ico」 type=」image/x-icon」>
<link rel=」shortcut icon」 href=」/dir/favicon.ico」 mce_href=」/dir/favicon.ico」 type=」image/x-icon」>
Firefox還支持GIF動畫格式的Favicon,使用方法如下:
首先製作一個16*16的gif動畫,然後在html代碼<head></head>中加入如下代碼:
程序代碼 <link rel="shortcut icon" href="favicon.ico" >
<link rel="icon" href="animated_favicon.gif" type="image/gif" >

③ node.js用uploadify上傳本地圖片後,把它放到canvas,無法使用todataurl()方法

你可以用一個file的input,在change事件里建立一個FileReader的instance,用readAsDataURL()讀取文件的內容,不用上傳伺服器。

④ express nodejs怎麼使用

Express 是一個簡潔、靈活的 node.js Web 應用開發框架, 它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。
1.express組織結構
app demo
|---node_moles------用於安裝本地模塊。
|---public------------用於存放用戶可以下載到的文件,比如圖片、腳本、樣式表等。
|---routes------------用於存放路由文件。
|---views-------------用於存放網頁的模板。
|---app.js------------應用程序的啟動腳本。
|---package.json------項目的配置文件。
2..創建express伺服器

//app.js文件
var express = require('express');
var app = express();
//指定更目錄顯示的內容
app.get('/', function(req, res){
res.send('Hello World');
});
//指定監聽埠
var server = app.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
運行nodejs應用程序
/>node app.js
3.中間件
中間件(middleware)就是處理HTTP請求的函數.
當一個HTTP請求進入伺服器,伺服器實例會調用第一個中間件,完成後根據設置,決定是否再調用下一個中間件.
中間件的參數為:
.四個的時候---第一個為錯誤處理,第二個為客戶請求request,第三個為伺服器響應respond,第四個為next中間件. 如function(error, request, response, next){}
.三個的時候---第一個客戶請求request,第二個為伺服器響應respond,第三個為next中間件. 如function(request, response, next){}
.兩個的時候---第一個客戶請求request,第二個為伺服器響應respondfunction. 如function(request, response){}
4.使用中間件use
use是express調用中間件的方法,它返回一個函數.

app.use(function(request, response) {
response.writeHead(200, { "Content-Type": "text/plain" });
response.end("Hello world!\n");
});
5.錯誤內容顯示

app.use(express.bodyParser());//使用body參數
app.use(express.methodOverride());//使用函數覆蓋
app.use(app.router);//使用路由
app.use(function(err, req, res, next){
console.error(err.stack);
res.send(500, 'Something broke!');
});//錯誤內容顯示
6.路由
express路由的方式有多種,這里舉例常用的幾種:
.app.use('/', middleware);//get/post時,對於路徑/的處理
.app.get("/", middleware);//http中get時,對於路徑/的處理
.app.post("/", middleware);//http中post時,對於路徑/的處理
.app.put("/", middleware);//http中put時,對於路徑/的處理
.app.delete("/", middleware);//http中delete時,對於路徑/的處理
7.路徑通配符*
.*表示所有路徑

app.get("*", function(request, response) {
response.end("404!");
});//所有路徑都返回404
.:捕獲路徑內容

app.get("/hello/:who", function(req, res) {
res.end("Hello, " + req.params.who + ".");
});//如"/hello/alice地網址,網址中的alice將被捕獲,作為req.params.who屬性的值
8.設置環境變數set
set用於指定變數的值.
app.set("view engine", "ejs");//使用ejs作為模版
9.response對象方法
.重定向redirect
response.redirect("/hello/anime");//重定向到/hello/anime
.發送文件sendFile
response.sendFile("/path/to/anime.mp4");
.渲染網頁模板render,即把變換的內容載入到網頁.
response.render("index", { message: "Hello World" });//將message變數傳入index模板,值為"Hello World"渲染成HTML網頁
10.requst對象方法
.獲取客戶ip地址:request.ip
.獲取上傳的文件:request.files
11.啟動腳本package.json
package.json用於指定app信息,nodejs版本號和其他組件的依賴關系

{
"name": "demo",
"description": "My First Express App",
"version": "0.0.1",
"dependencies": {
"express": "3.x"
}
}
12.app入口app.js
app.js主要包含http的創建,基本路由,監聽埠號
13.動態網頁模板views
views文件夾,用於存放所有的放網頁模板.

//app.js
app.get('/', function(req, res) {
res.render('index',{title:"最近文章"});
});
//index.js
this is <%=title%>!
14.指定靜態網頁目錄
//app.js
app.use(express.static('public'));//指定靜態網頁目錄,當瀏覽器發出非HTML文件請求時,伺服器端就到public目錄尋找這個文件
如:<link href="/bootstrap/css/bootstrap.css" rel="stylesheet">, 伺服器端就到public/bootstrap/css/目錄中尋找bootstrap.css文件

⑤ nodejs可以上傳大文件嗎

可以。不過要修改。

處理方式為在nodeJs的app.js文件中寫一個use中間件將其大小限制給修改了。

修改代碼:(app.js中)

[javascript]view plain

  • app.use(express.bodyParser({limit:"5000kb"}));

  • app.use(express.json({limit:'5000kb'}));


  • 這部分的代碼順序:(這個貌似沒多大作用,不過還是留一個)

⑥ nodejs+express+ejs寫的項目在pc端網頁上傳文件能獲取到類型,但在安卓瀏覽器上不行,有何解決辦法

FileReader 對象能拿到文件類型的,我寫一段代碼示例吧

varimg=document.getElementById('xFile')
varfile=img.files[0]
varreader=newFileReader()
reader.readAsDataURL(file)
reader.onload=function(){
console.log('***file.type',file.type)
}

話說財富值給的真少

⑦ nodejs 怎麼從request獲取上傳文件

可以使用第三方的js庫,比如spark-md5.js。上傳文件後,調用對應的api即可以獲取到上傳文件的md5。

⑧ node.js的express模塊支持多用戶上傳文件嗎

使用nodejs+express(4.x+)實現文件上傳
最簡單的做法是通過「connect-multiparty」中間件實現上傳。
通過在項目中npm install connect-multiparty進行安裝。
用法:
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/upload', multipartMiddleware, function(req, resp) {
console.log(req.body, req.files);
// don't forget to delete all req.files when done
});

上傳後,上傳的文件會在臨時目錄中生成一個臨時文件,具體可將req.files列印出查看具體文件路徑。
只要在注釋的地方將臨時文件移動並重命名到實際目錄中即可完成上傳功能。
簡單。

但是官方不建議使用該中間件,建議直接使用「multiparty」,因為錯誤處理比較麻煩。

下面就用「multiparty」實現一個版本。
1.使用express(版本是4.11.x)創建一個項目,採用默認的jade作為模版引擎。
2.在項目目錄中,通過npm install multiparty進行安裝必要組件。
3.修改views/index.jade,如下做一個簡單的用於文件上傳的form。

⑨ 如何使用 NodeJS 將文件或圖像上傳到伺服器

下面先介紹上傳文件到伺服器(多文件上傳):
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.util.regex.*;
import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GB2312";
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out=response.getWriter();
try {
DiskFileUpload fu = new DiskFileUpload();
// 設置允許用戶上傳文件大小,單位:位元組,這里設為2m
fu.setSizeMax(2*1024*1024);
// 設置最多隻允許在內存中存儲的數據,單位:位元組
fu.setSizeThreshold(4096);
// 設置一旦文件大小超過getSizeThreshold()的值時數據存放在硬碟的目錄
fu.setRepositoryPath("c://windows//temp");
//開始讀取上傳信息
List fileItems = fu.parseRequest(request);
// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
//正則匹配,過濾路徑取文件名
String regExp=".+////(.+)$";
//過濾掉的文件類型
String[] errorType={".exe",".com",".cgi",".asp"};
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem)iter.next();
//忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
String name = item.getName();
long size = item.getSize();
if((name==null||name.equals("")) && size==0)
continue;
Matcher m = p.matcher(name);
boolean result = m.find();
if (result){
for (int temp=0;temp<ERRORTYPE.LENGTH;TEMP++){
if (m.group(1).endsWith(errorType[temp])){
throw new IOException(name+": wrong type");
}
}
try{
//保存上傳的文件到指定的目錄
//在下文中上傳文件至資料庫時,將對這里改寫
item.write(new File("d://" + m.group(1)));
out.print(name+" "+size+"");
}
catch(Exception e){
out.println(e);
}
}
else
{
throw new IOException("fail to upload");
}
}
}
}
catch (IOException e){
out.println(e);
}
catch (FileUploadException e){
out.println(e);
}

}
}
現在介紹上傳文件到伺服器,下面只寫出相關代碼:
sql2000為例,表結構如下:
欄位名:name filecode
類型: varchar image
資料庫插入代碼為:PreparedStatement pstmt=conn.prepareStatement("insert into test values(?,?)");
代碼如下:
。。。。。。
try{
這段代碼如果不去掉,將一同寫入到伺服器中
//item.write(new File("d://" + m.group(1)));

int byteread=0;
//讀取輸入流,也就是上傳的文件內容
InputStream inStream=item.getInputStream();
pstmt.setString(1,m.group(1));
pstmt.setBinaryStream(2,inStream,(int)size);
pstmt.executeUpdate();
inStream.close();
out.println(name+" "+size+" ");
}
。。。。。。
這樣就實現了上傳文件至資料庫

⑩ nodejs中我用的express版本是3,用multer上傳文件,但是加上app.use(express.bodyParser());就不能上傳了

試試bodyParser的raw()。
var bodyParser = require('body-parser')
app.use(bodyParser.raw())

熱點內容
ubuntuphpmcrypt 發布:2025-01-16 08:26:46 瀏覽:428
安卓圖片如何添加蘋果的水墨印 發布:2025-01-16 08:18:12 瀏覽:730
fmp腳本 發布:2025-01-16 08:12:23 瀏覽:230
nagios自定義腳本 發布:2025-01-16 08:09:52 瀏覽:364
安卓為什麼下不了方舟生存進化 發布:2025-01-16 08:02:32 瀏覽:194
如何登錄男朋友的微信密碼 發布:2025-01-16 07:41:14 瀏覽:194
寶駿解壓流程 發布:2025-01-16 07:35:35 瀏覽:2
兩匹壓縮機多少錢 發布:2025-01-16 07:29:19 瀏覽:635
個人pc搭建游戲伺服器 發布:2025-01-16 07:27:09 瀏覽:970
存儲剩餘照片 發布:2025-01-16 07:25:01 瀏覽:50