У меня есть код ниже, чтобы запросить информацию о существующем файле, и в результате он ищет объект файла.
$.getJSON('/Upload/UploadHandler.ashx', { f: data.files[0].name, context: data.context, t: e.timeStamp }, function (result) {
var uuid = Math.random().toString(36).substr(2, 8); // new uuid to prevent overwriting of file chunks with same name
var existing = false;
if (result.files.length !== 0) {
var file = result.files[0];
data.uploadedBytes = file && file.size; // set the length of bytes already uploaded
if (file.extra.chunkInfo !== null) { // chunkInfo = null if uploaded file is not chunked
uuid = file.extra.chunkInfo.uuid; // optional: Get existing uuid if uploaded file is chunked
}
existing = (file.size === data.files[0].size); // true, if file already fully uploaded
}
if (existing) { // Add file only if it is not uploaded already
alert("File already uploaded");
} else {
data.formData = { 'uuid': uuid }; // Optional: Add uuid to chunk path to prevent overwriting
$.blueimp.fileupload.prototype
.options.add.call(that, e, data); // Add file to list if is not already uploaded
}
});
У меня есть функция сервера ниже, которая записывает файл в объект ответа. Я вижу только метод WriteFile, который записывает весь файл в ответ
но мне нужен только размер файла и chunkInfo, так как функция на стороне клиента ищет. Как я могу изменить эту функцию, чтобы она работала с приведенным выше сценарием?
Спасибо!
private void DeliverFile(HttpContext context)
{
var filename = context.Request["f"];
var filePath = StorageRoot + filename;
if (File.Exists(filePath))
{
context.Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
context.Response.ContentType = "application/octet-stream";
context.Response.ClearContent();
context.Response.WriteFile(filePath);
}
else
context.Response.StatusCode = 404;
}