geo*_*per 171 javascript file-type node.js
我在node.js中使用express 3创建文件上传功能.
我想抓取图像的文件扩展名.所以我可以重命名该文件,然后将文件扩展名附加到它.
app.post('/upload', function(req, res, next) {
var is = fs.createReadStream(req.files.upload.path),
fileExt = '', // I want to get the extension of the image here
os = fs.createWriteStream('public/images/users/' + req.session.adress + '.' + fileExt);
});
Run Code Online (Sandbox Code Playgroud)
如何在node.js中获取图像的扩展名?
Sno*_*ish 402
我相信您可以执行以下操作来获取文件名的扩展名.
var path = require('path')
path.extname('index.html')
// returns
'.html'
Run Code Online (Sandbox Code Playgroud)
die*_*ump 32
更新
由于原始答案,extname()已添加到path模块中,请参阅Snowfish的答案
原始答案:
我正在使用此函数来获取文件扩展名,因为我没有找到一种方法以更简单的方式执行此操作(但我认为有):
function getExtension(filename) {
var ext = path.extname(filename||'').split('.');
return ext[ext.length - 1];
}
Run Code Online (Sandbox Code Playgroud)
你必须要求'路径'才能使用它.
另一种不使用路径模块的方法:
function getExtension(filename) {
var i = filename.lastIndexOf('.');
return (i < 0) ? '' : filename.substr(i);
}
Run Code Online (Sandbox Code Playgroud)
Kam*_*rul 18
// you can send full url here
function getExtension(filename) {
return filename.split('.').pop();
}
Run Code Online (Sandbox Code Playgroud)
如果您使用快速,请在配置中间件(bodyParser)时添加以下行
app.use(express.bodyParser({ keepExtensions: true}));
Run Code Online (Sandbox Code Playgroud)
ale*_*son 11
该解决方案支持查询字符串!
var Url = require('url');
var Path = require('path');
var url = 'http://i.imgur.com/Mvv4bx8.jpg?querystring=true';
var result = Path.extname(Url.parse(url).pathname); // '.jpg'
Run Code Online (Sandbox Code Playgroud)
mag*_*ker 10
使用该substr()方法代替split()&更高效pop()
看看这里的性能差异:http://jsperf.com/remove-first-character-from-string
// returns: 'html'
var path = require('path');
path.extname('index.html').substr(1);
Run Code Online (Sandbox Code Playgroud)
例如,您可以使用path.parse(path)
const path = require('path');
const { ext } = path.parse('/home/user/dir/file.txt');
Run Code Online (Sandbox Code Playgroud)
一个简单的解决方案,无需解决多周期扩展问题的需求:
var filename = 'file.with.long.extension';
var ext = filename.substring(filename.indexOf('.'));
//ext = '.with.long.extension'
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想要前导点:
var filename = 'file.with.long.extension';
var ext = filename.substring(filename.indexOf('.')+1);
//ext = 'with.long.extension'
Run Code Online (Sandbox Code Playgroud)
确保测试该文件也有扩展名.
小智 6
import extname 以返回文件的扩展名:
import { extname } from 'path';
extname(file.originalname);
Run Code Online (Sandbox Code Playgroud)
其中 file 是表单的文件“名称”
| 归档时间: |
|
| 查看次数: |
161670 次 |
| 最近记录: |