загрузить файл в MySql DB с помощью PHP - PullRequest
0 голосов
/ 21 августа 2009

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

Я использую форму как:

<FORM METHOD="post" ACTION="fileUpload.php" ENCTYPE="multipart/form-data"><br> <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="3000000"><br> <INPUT TYPE="hidden" NAME="action" VALUE="upload"><br> <TABLE BORDER="1"> <TR> <TD>Description: </TD> <TD><TEXTAREA NAME="txtDescription" ROWS="10" COLS="50"> </TEXTAREA></TD> </TR> <TR> <TD>File: </TD> <TD><INPUT TYPE="file" NAME="binFile"></TD> </TR> <TR> <TD COLSPAN="2"><INPUT TYPE="submit" NAME="Upload" VALUE="Upload"></TD> </TR> </TABLE> </FORM>

но когда я отправляю его и распечатываю массив $ _POST, я получаю: Массив ([MAX_FILE_SIZE] => 3000000 [действие] => загрузить [txtDescription] => jassfhjabsf [Загрузить] => Загрузить)

Я не могу понять, где содержимое файла "binFile" теряется. Кто-нибудь может мне помочь?

С уважением, Mayank.

Ответы [ 3 ]

4 голосов
/ 21 августа 2009

Возможно, вы захотите взглянуть на раздел загрузки руководства по PHP: Обработка загрузки файлов ; это, вероятно, будет хорошим началом; -)

Например, вы можете видеть, что информация файла хранится в $_FILES, а не в $_POST (см. POST метод загрузки ) - по крайней мере, учитывая ваш пример, я полагаю, вы ищите файл в $_POST, а не $_FILES.

в вашем случае, учитывая, что поле ввода называется "binFile", вы, вероятно, захотите использовать var_dump (или любой эквивалент) в $_FILEs['binFile'] , чтобы увидеть, что внутри; -)

Затем вы можете использовать is_uploaded_file и move_uploaded_file для работы с самим файлом.


Тогда вы уверены, что хотите сохранить содержимое файла в базе данных, а не на диске, а только сохранить в БД путь к файлу?

Об этом вы можете взглянуть на этот вопрос и его ответы: Хранение изображений в БД - да или нет? - это не относится к PHP, но идеи все же должны быть верными.

Может быть Где хранить загруженные файлы (звук, изображения и видео) тоже может помочь ;-)
То же самое с Хранение небольшого количества изображений: blob или fs? и / или Сохранение изображений в виде файлов или в базе данных для веб-приложения?

1 голос
/ 21 августа 2009

он находится в каталоге tmp, пока вы его не переместите

$userfile = $_FILES['binFil']['tmp_name'];
move_uploaded_file($userfile , "somedir");

После слов вы должны определить, к какому типу это относится:

$userfileExt = array_pop(explode(':', $userfile));
1 голос
/ 21 августа 2009

Файл, который вы загружаете, отправляется в каталог загрузки.

Вы можете получить имя файла, посмотрев на $_FILES['binFile']['tmp_name']

Вы должны сделать что-то с файлом до завершения скрипта, иначе веб-сервер удалит его.

Вы должны прочитать содержимое файла и поместить его в столбец BLOB.

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