使用NodeJS从URL下载JPG时损坏图像

时间:2016-03-06 18:03:35

标签: node.js corrupt

我在JavaScript中创建了一个从URL下载图像并将图像写入磁盘的函数。该功能适用​​于我下载的大多数图像,但有大约30个(400个中)已损坏且无法打开。文件已创建,但没有关联的扩展名,详细信息显示该文件为0 kB。我知道源文件没有损坏,因为我在C#中有一个适用于所有文件的工作解决方案。

var download = function(url, destination, callback) {
    fs.exists(destination, function(exists){
        if (!exists){
            http.get(url, function(response) {
                var imageData = '';
                response.setEncoding('binary');
                response.on('data', function(chunk){
                    imageData += chunk;
                });
                response.on('end', function(){
                   fs.writeFile(destination, imageData, 'binary', function(error){
                      if(error){
                          console.log(error);
                      } else{
                          callback();
                      } 
                   });
                });
            });
        }
    });
};

我正在使用Windows计算机,不确定这是否会出现问题,所以我想我会提到它。

1 个答案:

答案 0 :(得分:0)

事实证明我没有在路径字符串中检查非法字符。 在我的C#解决方案中,我使用了不同的文件名。一旦我用正则表达式删除了非法字符,一切都很好。