Решение легко совместно использовать большие файлы с нетехнически подкованными пользователями?

Можно записать приложение в PHP, и единственные добавляют для администратора IIS, fastcgi и PHP. (учебное руководство здесь). Вы собираетесь иметь зависимости от любой платформы, которая должна быть разрешена независимо от того, что направляет Вас, берут. Со стороны поддержки существует гораздо меньше varibles на стороне окон по сравнению со стороной Linux. Если Вы принимаете решение быть нацеленными на ASP.net, можно получить убивание информации об отладке из поля с платформы .NET. Веб-хостинг Windows также стандартизирован (как долго, поскольку веб-хосту на самом деле разрешают сделать веб-хостинг - который является, конечно, протестом, который можно передать клиентам), и можно легко проверить, что сервер он настроил согласно спецификации.

1
задан 22 August 2012 в 20:04
7 ответов

Это кажется, что простой Сценарий PHP смог обрабатывать его. Хотя я не знаю о тайм-аутах и т.д., если это прибывает в который большие файлы.

Сценарий мог работать как следующее:

  • Если никакой вход в систему не обеспечивается, покажите форму входа в систему
  • Проверьте этот вход в систему против базы данных
  • Покажите простому селектору файла
  • Загрузите файл на случайную сгенерированную папку/имя файла и скажите пользователю о том имени

Следующие дополнительные вещи были бы необходимы:

  • Администрация базы данных входа в систему
  • cronjob, который удаляет старые файлы
2
ответ дан 3 December 2019 в 16:58

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

Это очень плохо. Если данные являются действительно конфиденциальными, Вы не можете доверять просто URL для осуществления конфиденциальности.

Что относительно ftp?

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

1
ответ дан 3 December 2019 в 16:58
  • 1
    Моей проблемой с ftp является большая сумма издержек в создании пользователей, права настроек, развертывание клиентов, перемещают файлы и то, чтобы не забывать впоследствии удалить пользователей, папки, права и т.д. Какой we' предполагающее ре является большим количеством маркеров единственного использования для коротко рабочих проектов, чем продолжительные клиенты возврата с соответствующими правами. –  Tim 6 May 2010 в 12:02
  • 2
    Я понимаю. Имеет смысл и меня don' t знают ответ, извините. Однако, don' t используют URL вместо реального метода защиты. –  o0'. 6 May 2010 в 12:15
  • 3
    You' ре прямо на этом, но объединенный с ограниченным объемом загрузок & дни (5 и 5), риск уже несколько снижен. –  Tim 6 May 2010 в 12:20
  • 4
    Сколько пользователей Вы ожидаете использовать это? Если количество не является действительно очень большим, затем издержки shouldn' t быть, что высоко - Вы создаете папку, Вы создаете группу, Вы даете группе соответствующие права доступа папке. Затем для каждого пользователя, Вы создаете учетную запись, отправляете им данные для входа в систему и присваиваете того пользователя группе. Используйте веб-браузер в качестве клиента - нулевая проблема распределения. Это - проверенная на практике модель и может быть автоматизировано до степени. Вы думаете, что издержки высоки, но при попытке система самокрутки, я уверен, что Вы найдете, что проводите больше времени и энергии. –  dunxd 6 May 2010 в 12:28

FTP был бы хорошим выбором как на стороне сервера, Вы могли настроить сценарии для управления файлами как требуется. Ваши клиенты смогли бы получить доступ к файлам с помощью большинства веб-браузеров или даже Windows Explorer. Вы можете пароль защищать Ваши папки ftp, который дает некоторую безопасность, однако, передачи файлов были бы в ясном. Кроме того, много блоков корпоративных сред FTP. Но это было бы самым простым и самым гибким маршрутом.

Если Вы требуете безопасной передачи своих файлов, то WebDav дает подобный опыт конечного пользователя, но можно надежно передать файлы по HTTPS, и http и https, менее вероятно, будут заблокированы клиентами. Выполнения WebDav сверху большинства веб-серверов (Apache и IIS оба имеют плагины в наличии), и так как он действительно просто предоставляет доступ к Вашей файловой системе, затем можно использовать любые сценарии или функции операционной системы для управления файлами автоматически.

1
ответ дан 3 December 2019 в 16:58

Здесь очень простое решение PHP, на котором нужно подробно остановиться, чтобы сделать то, что Вы на самом деле хотите:

<form enctype="multipart/form-data" method="POST">
File: <input name="file" type="file">
<input type="submit" value="Upload">
</form> 
<?php
    $directory = "/var/www/secure/files/";
    $url_prefix = "http://www.mywebsite.com/secure/files/";

    if(array_key_exists("file", $_FILES)) {
        if($_FILES["file"]["error"] > 0) {
            echo "Error occurred during upload: " . $_FILES["file"]["error"];
        }
        else {
            # Randomly generate a filename with the correct extension
            $filename = $_FILES["file"]["name"];
            $ext = split("[/\\.]", strtolower($filename)); 
            $ext = $exts[count($ext)-1]; 
            $target = $directory . rand() . "." . $ext;

            # Move the file to the desired directory and rename using the generated filename
            if(move_uploaded_file($_FILES["file"]["tmp_name"], $target)) {
                echo "File upload successful: " . $target;
            } 
            else {
                echo "Error occurred while storing file.";
            }
        }

        $dirHandler = opendir($directory);

        // Read the directory
        while($entry = readdir($dirHandler)) {
            $dir[] = $entry;
        }

        closedir($dirHandler);
        sort($dir);

        echo "<table>\n";
        echo "<tr><th>Filename</th><th>Filetype</th><th>Filesize</th></tr>\n";
        $count = count($dir);
        for($i = 0; $i < $count; $i++) {
                if (substr("$dirArray[$i]", 0, 1) != "."){ // don't list hidden files
                echo "<tr><td><a href=\"" . $url_prefix . $dir[$i] . "\">" . $dir[$i] . "</a></td>";
                echo "<td>" . filetype($dir[$i]) . "</td>";
                echo "<td>" . filesize($dir[$i]) . "</td></tr>\n";
            }
        }
        echo "</table>";
    }
?>
1
ответ дан 3 December 2019 в 16:58
  • 1
    " Что выполняет Ваш сервер? " > Все вышеупомянутое. Я знаю, что существуют подобные сценарии, но it' s трудно для нахождения того, который соответствует среди тысяч сценариев каждому с их собственными причудами и ограничениями. –  Tim 6 May 2010 в 11:58
  • 2
    @Tim: подобно вышеупомянутое решение тому, что Вы ищете? Загруженный файл переименован и перемещен в безопасный каталог, и список всех безопасных файлов каталога показывают. Имена файлов являются просто случайными числами, таким образом, они не являются представительными для цели файла. Доступ к базе данных или другая схема именования файла зафиксировали бы это. Этот сценарий не должен использоваться без дополнительной защиты , но добавление, что соответствующая безопасность к этому не должна быть слишком трудной. –  Trey Hunner 6 May 2010 в 23:03
  • 3
    Спасибо за усилие thusfar, мой коллега работает с чем-то подобным в PHP, таким образом, I' ll pss это вперед. Я волнуюсь однако (как указано другими здесь) о сложностях при загрузке очень большой (гигабайты) файлы... –  Tim 7 May 2010 в 00:32
  • 4
    Спасибо за этот фрагмент кода. I' ve изменил мою копию немного для использования случайных каталогов, а не случайных имен файлов. +1 для хорошего легкого (частичного) решения. –  John Gardeniers 7 May 2010 в 01:26

Вы посмотрели на сервисы, такие как drop.io или dropbox.com? drop.io даже предоставляет API справочные библиотеки для JavaScript, PHP, Ruby и .NET

0
ответ дан 3 December 2019 в 16:58
  • 1
    Данные являются иногда конфиденциальными, таким образом, мы ожидаем, что наши клиенты не собираются любить их, если мы перенаправляем их на сайт как Dropbox или drop.io.. –  Tim 6 May 2010 в 12:18

Любая большая загрузка файла на сеть через broswer проблематична. У Вас есть намного больше шанса иметь ошибку при загрузке 1Go файл, чем во время загрузки изображения 100 КБ. И браузеры не, знают для их способности обработать повторения загрузки хорошо.

Таким образом, если Вы хотите поместить на месте устойчивое, простое в использовании решение, я определенно думаю, что Вам будет нужен толстый клиент на клиенте ПК. Это могло быть апплетом Java, клиентом FTP, загрузчиком общего назначения...

Клиент FTP общего назначения мог быть вполне легким решением. Управление пользователями могло, вероятно, быть легко автоматизировано вокруг Вашего FTP-сервера с несколькими сценариями...

Извините, у меня нет надлежащего решения, всего нескольких идей...

0
ответ дан 3 December 2019 в 16:58

Это старый вопрос, но класс приложения, который ищет OP, называется «Управляемая передача файлов». В этом пространстве много продавцов. Все они работают в Linux: CrushFTP, JSCAPE, RhinoSoft (только CentOS / RHEL 6.x), GoAnywhere. Есть еще много вариантов на выбор ...

1
ответ дан 3 December 2019 в 16:58

Теги

Похожие вопросы