nodejs代碼示例如下:
```javascript
// nodejs API 參考:http://nodeapi.ucdok.com/#/api/
// 需要本地安裝 formidable ,參見 https://github.com/felixge/node-formidable
var formidable = require('formidable');
var http = require('http');
var fs = require('fs');
var url = require('url');
var path = require('path');
// 文件將要上傳到哪個文件夾下面
var uploadfoldername = 'uploadfiles';
var uploadfolderpath = __dirname + '/' + uploadfoldername;
var port = 8888;
http.createServer(function (req, res) {
// ----------------------用 '/upload' 這個路由來處理文件上傳----------------------
if (req.url === '/upload' && req.method.toLowerCase() === 'post') {
// ---------------------- 跨域上傳 ----------------------
// 使用第三方的 formidable 插件初始化一個 form 對象
var form = new formidable.IncomingForm();
// wangEditor_uploadImg_assist.html 頁面的url地址
var assitUrl = 'http://localhost:8888/test/wangEditor_uploadImg_assist.html';
// 處理 request
form.parse(req, function (err, fields, files) {
if (err) {
return console.log('formidable, form.parse err');
}
var file = files['wangEditor_uploadImg'];
// formidable 會將上傳的文件存儲為一個臨時文件,現在獲取這個文件的目錄
var tempfilepath = file.path;
// 獲取文件類型
var type = file.type;
// 獲取文件名,并根據文件名獲取擴展名
var filename = file.name;
var extname = filename.lastIndexOf('.') >= 0
? filename.slice(filename.lastIndexOf('.') - filename.length)
: '';
// 文件名沒有擴展名時候,則從文件類型中取擴展名(如粘貼圖片時)
if (extname === '' && type.indexOf('/') >= 0) {
extname = '.' + type.split('/')[1];
}
// 將文件名重新賦值為一個隨機數(避免文件重名)
filename = Math.random().toString().slice(2) + extname;
// 構建將要存儲的文件的路徑
var filenewpath = uploadfolderpath + '/' + filename;
// 將臨時文件保存為正式的文件
fs.rename(tempfilepath, filenewpath, function (err) {
// 存儲結果
var result = '';
var imgUrl = '';
if (err) {
// 發生錯誤
console.log('fs.rename err');
result = assitUrl + '#上傳失敗';
} else {
// 保存成功
console.log('fs.rename done');
// 拼接圖片url地址
imgUrl = 'http://localhost:' + port + '/' + uploadfoldername + '/' + filename;
result = assitUrl + '#ok|' + imgUrl;
}
// 返回結果
res.writeHead(200, {
'Content-type': 'text/html'
});
res.end('<iframe src="' + result + '"></iframe>');
});
});
} else {
// ---------------------- 其他路由,直接作為靜態文件返回 ----------------------
var pathname = url.parse(req.url).pathname;
var filepath = path.join(__dirname, pathname);
fs.readFile(filepath, function (err, file) {
if (err) {
res.writeHead(404);
console.log('response file error: ' + filepath);
res.end('404 NOT FOUND...');
return;
}
res.writeHead('200');
console.log('response file success: ' + filepath);
res.end(file);
});
}
}).listen(port);
// 監聽 localhost port 端口
console.log('server start at ' + port + '...');
```
- 關于wangEditor
- 基本應用
- 開始使用
- 下載wangEditor
- 創建頁面
- 生成編輯器
- 與font-awesome的沖突
- 設置高度
- 設置絕對高度
- 默認高度和最大高度
- 初始化內容
- html方式
- javascript方式
- 獲取內容
- 追加內容
- 基本配置
- 自定義配置菜單
- 配置onchange監聽事件
- 自定義配置表情圖標
- 簡單表情
- 多組表情
- 配置代碼高亮
- 下載highlight
- 使用highlight
- 與wangEditor集成
- 不過濾javascript代碼
- 圖片上傳
- 非跨域
- 使用plupload做一個上傳圖片的頁面
- 在頁面加入wangEditor
- 將兩者結合
- 后臺代碼示例
- C#
- java
- php
- nodejs
- 征集
- 跨域
- 下載 wangEditor_uploadImg_assist.html
- 編寫后臺代碼
- 配置url地址
- 后臺代碼示例
- C#
- java
- python
- nodejs
- 征集
- 粘貼截圖
- 其他
- 多語言支持
- 默認中文
- 使用英文
- 使用其他語言
- 單頁多個編輯器
- 使用requirejs
- 使用seajs
- 增加 placeholder 功能
- 定制開發