Я пытаюсь несколько недель менять имя загружаемого файла. Но до сих пор не повезло. Вместо имени файла, которое должно быть Chrysanthemum.jpg
, оно становится хешем файла, то есть 241693260.jpg
атрибут загрузки HTML5 не работает, Forcing file rename при загрузке
В моем back-end я использую Node.js и Express.js для обработки загрузки/загрузки файлов. Я использую имя файла и атрибуты, чтобы убедиться, что файлы не перезаписываются.
Вот HTML код:
<a class="btn btn-info" href="http://localhost:3000/getAttachments?name=Chrysanthemum.jpg&type=image%2Fjpeg&size=879394&lastModified=1247549551674&extension=jpg" download="Chrysanthemum.jpg" target="_blank">Download File</a>
Вот мой фоновый:
app.use('/uploads', express.static(__dirname + "/uploads"));
app.get("/getAttachments", function (req, res) {
try {
var fileToBeSent = hashCode(req.query.name + req.query.type + req.query.size + req.query.lastModified + req.query.extension);
fileToBeSent += req.query.extension ? '.' + req.query.extension : '';
// res.sendFile("./uploads/" + fileToBeSent, {
// root: __dirname,
// "Content-Disposition": '"attachment; filename="' + (req.query.extension ? '.' + req.query.extension : '') + '"',
// "Content-Type": "application/octet-stream"
// });
res.redirect("/uploads/" + fileToBeSent);
} catch (err) {
console.log("an attempt to GET a file that doesn't exist.");
}
});
Так как я переименовать имя файла в моем заднем конце, я пытаюсь переименовать файл обратно на его исходное имя с помощью HTML5, но я не добился успеха.
ОБНОВЛЕНИЕ: Использование результата sendFile выражения в той же проблеме.
UPDATE: Мой сервер использует кросс-ПРОИСХОЖДЕНИЕ
Какой браузер вы используете при попытке проверить это. Согласно [caniuse.com] (http://caniuse.com/#feat=download) IE и Safari по-прежнему не поддерживают этот атрибут ... – War10ck
Google Chrome и Firefox. – Apha
@ War10ck Я думаю, что это не проблема с браузером, это проблема атрибута загрузки HTML5. – Apha