Как изменить функцию на стороне сервера, чтобы возвращать информацию о файле на стороне клиента, используя jQuery? - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть код ниже, чтобы запросить информацию о существующем файле, и в результате он ищет объект файла.

$.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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...