Загрузка файла PHP с помощью строки запроса - PullRequest
1 голос
/ 24 марта 2012

Мне любопытно, как я мог бы создать сценарий PHP, в котором вы передаете свое имя пользователя и пароль моему веб-серверу, и он загружает файл (или несколько файлов), относящийся только к этому одному пользователю.Я не уверен, с чего начать.Может ли кто-нибудь помочь, пожалуйста?спасибо!

Ответы [ 3 ]

1 голос
/ 24 марта 2012

Вот оно: http://www.php.net/manual/en/function.readfile.php

Вы не должны вводить пароль непосредственно в URL.Вместо этого используйте случайный сгенерированный токен, например, используя MD5 ($token = md5($username.time());).Итак, ваша таблица пользователей должна выглядеть следующим образом:

id
email
password
token

URL-адреса, которые вы предоставите своему пользователю, будут выглядеть так:

http://www.example.com/download.php?token=$userToken&file=$file

И download.php:

<?php
if ( ! isset($_GET['token']) || ! isset($_GET['file'])) {
    //throw 404
}
//check token exists in DB else throw 403
//use readfile function :)
0 голосов
/ 24 марта 2012

Вот простой пример:

download.php
<?php
if (isset($_GET['user_info']) && check_validity($_GET['user_info'])) {
  $file_info = determine_file_info($_GET['user_info']);
  header("Content-type: " . $file_info['type']);
  header('Content-disposition: attachment; filename="' . $file_info['name'] . '"');
  readfile($file_info['absolute_path']);
  exit;
}
?>

Этот макет представляет, что вы определили функцию check_validity, которая определяет, является ли данная информация пользователя действительной, и что вы определили функцию determine_file_info, которая использует информацию пользователя для построения массива типа файла, имя и путь к файлу (где файл находится на сервере).

0 голосов
/ 24 марта 2012

Сначала вы можете создать таблицу mysql для всех пользователей.Затем вы можете создать второй файл, в котором имена файлов и имена пользователей будут сохранены, например, «file: test.png user: xyz», и каждый файл будет иметь владельца.Если кто-то хочет загрузить файл, вы должны проверить, является ли этот пользователь владельцем файла в базе данных.Список всех файлов затем показывает все файлы этого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...