временная ссылка скачать файл

привет

У меня есть ссылка для временной загрузки файла.
Пожалуйста, заполните небольшой набор образцов.
Спасибо,


Пожалуйста, зарегистрируйтесь или войдите, чтобы проголосовать.

Решение 1

Принять решение Отклонить решение
Если вам просто нужна управляемая ОС временный файл на стороне сервера, используйте этот: Path.GetTempFileName () [^].

Имейте в виду, что количество файлов, которые вы можете иметь, ограничено. Несмотря на то, что в папке TEMP есть сборщик мусора, вы не сможете полагаться на него из-за жизненного цикла приложения. Поэтому вам лучше создать оболочку IDisposable, которая удалит файл, когда вы закончите с ним. См. Решение здесь: http://stackoverflow.com/questions/400140/how-do-i-automatically-delete-tempfiles-in-c[^]

  с использованием System; с использованием System.IO; запечатанный класс TempFile: IDisposable {строковый путь;  общедоступный TempFile (): это (System.IO.Path.GetTempFileName ()) {} общедоступный TempFile (строковый путь) {если (string.IsNullOrEmpty (путь)) выбросить новое исключение ArgumentNullException ("путь");  this.path = путь;  } общедоступная строка Path {get {if (path == null) throw new ObjectDisposedException (GetType (). Name);  Обратный путь;  }} ~ TempFile () {Dispose (false);  } public void Dispose () {Dispose (true);  } private void Dispose (логическое удаление) {if (удаление) {GC.SuppressFinalize (это);  } if (путь! = null) {попробуйте {File.Delete (путь);  } catch {}//лучший путь = null;  }}} статический класс Program {static void Main () {string path;  используя (var tmp = new TempFile ()) {path = tmp.Path;  Console.WriteLine (File.Exists (путь));  } Console.WriteLine (File.Exists (путь));  }} 

И здесь у вас есть примеры выполнения конкретной загрузки: http://www.csharp-examples.net/download-files/[^]. На самом деле это довольно просто.

Постоянная ссылка
Обновлено 29 -Nov-14 22:37 pm
v2
Комментарии
Я хочу продать свою ссылку для загрузки файла.
Загрузка ссылка разная для каждого покупателя.
Это что-то еще. Итак, вы хотите предоставить загадочный URL-адрес (например, когда вы делитесь своим общедоступным календарем или документом Google). Вот что вы можете сделать:
1) создать таблицу, которая сопоставляет случайную часть URL-адреса с фактическим содержимым
2) подумайте о виртуальном пути и используйте маршрутизацию для перехвата таких запросов
3) в каждом случае, когда вы хотите поделиться, дайте такой контент, создайте длинную случайную строку, которая будет частью виртуального пути, и сохраните ее в приведенной выше таблице
4) при обработке этой ссылки вы просто берете случайную строку, разрешаете сопоставление из таблицы и обслуживаете контент
Если вы используете MVC, а не веб-формы, это даже проще.

Если вам просто нужен управляемый ОС временный файл на стороне сервера, используйте этот: Path.GetTempFileName () [^ ].

Имейте в виду, что количество файлов, которые вы можете иметь, ограничено. Несмотря на то, что в папке TEMP есть сборщик мусора, вы не сможете полагаться на него из-за жизненного цикла приложения. Поэтому вам лучше создать оболочку IDisposable, которая удалит файл, когда вы закончите с ним. См. Решение здесь: http://stackoverflow.com/questions/400140/how-do-i-automatically-delete-tempfiles-in-c[^]

  с использованием System; с использованием System.IO; запечатанный класс TempFile: IDisposable {строковый путь;  общедоступный TempFile (): это (System.IO.Path.GetTempFileName ()) {} общедоступный TempFile (строковый путь) {если (string.IsNullOrEmpty (путь)) выбросить новое исключение ArgumentNullException ("путь");  this.path = путь;  } общедоступная строка Path {get {if (path == null) throw new ObjectDisposedException (GetType (). Name);  Обратный путь;  }} ~ TempFile () {Dispose (false);  } public void Dispose () {Dispose (true);  } private void Dispose (логическое удаление) {if (удаление) {GC.SuppressFinalize (это);  } if (путь! = null) {попробуйте {File.Delete (путь);  } catch {}//лучший путь = null;  }}} статический класс Program {static void Main () {string path;  используя (var tmp = new TempFile ()) {path = tmp.Path;  Console.WriteLine (File.Exists (путь));  } Console.WriteLine (File.Exists (путь));  }} 

И здесь у вас есть примеры выполнения конкретной загрузки: http://www.csharp-examples.net/download-files/[^]. На самом деле это довольно просто.



Как сгенерировать URL-адрес загрузки временного файла для локального хранилища laravel? [closed]

Из официальной документации Laravel:

Для файлов, хранящихся с использованием драйвера s3 или rackspace, вы можете создать временный URL-адрес для данного файла с помощью метода externalUrl.

Есть ли способ иметь временный URL-адрес загрузки для файлов вместо использования s3/etc и для только локальное хранилище . Я использую библиотеку https://github.com/spatie/laravel-medialibrary для разработки.


  общедоступная функция downloadFileAction () {if (isset ($  _REQUEST ['имя_файла'])) {$ pathFile = STORAGE_PATH. '/'. $ _ REQUEST ['имя_файла'];  заголовок ('Content-Description: File Transfer');  header ('Content-Disposition: attachment; filename = "'. $ _ REQUEST ['имя_файла']. '"'); заголовок ('Content-Type: application/octet-stream'); header ('Content-Transfer-Encoding: двоичный'); заголовок ('Content-Length:'. Размер файла ($ pathFile)); заголовок  ('Cache-Control: must-revalidate, post-check = 0, pre-check = 0'); header ('Pragma: public'); header ('Expires: 0'); readfile ($ pathFile);}}  общедоступная функция uploadFile (массив $ file) {$ storagePath = STORAGE_PATH; @mkdir ($ storagePath, 0777, true); $ fullPath = $ storagePath. uniqid (time ()). $ file ['name']; $ fileTemp = $  file ['tmp_name']; move_uploaded_file ($ fileTemp, $ fullPath); return $ fullPath;}  

В вашем контроллере вы можете взять файл с таким: $ _FILES

Оцените статью
logicle.ru
Добавить комментарий