Привет, я знаю основы PHP и это. Я недавно заново открыл это и учил себя новым методам. Поэтому, пожалуйста, потерпите меня …
В этой задаче я загружаю документ MS Word через php, сохраняю его в mysql и извлекаю при необходимости.
Это возможно? Должен ли файл, такой как .doc, храниться в той же базе данных, что и имя, фамилия, адрес электронной почты и т. Д. Или я должен хранить его как BLOB-файл в отдельной базе данных для загрузки файлов? Я не уверен, что mysql может читать каждую строку в файле .doc? Благодарю. Есть ли в Интернете примеры для начинающих, как я?
Я уже сделал исследование. Некоторые люди говорят, что я не должен использовать mysql для хранения текстовых файлов, другие говорят, что я могу.
В настоящее время у меня есть:
<form action="insert.php" method="post">
<label>First Name:</label><input type="text" name="firstname" id="firstname"/><br>
<label>Last Name:</label><input type="text" name="lastname" id="lastname"/><br>
<label>Email:</label><input type="text" name="email" id="email"/><br>
<div><label id="upload">Select file to upload:
<input type="file" id="upload" name="upload"/></label></div><br>
<input type="submit" name=submit value="Submit"/>
</form>
Здесь есть несколько тем для обсуждения.
Форма
Чтобы загрузить файл, измените атрибут формы enctype.
<form action="insert.php" method="post" enctype="multipart/form-data">
:
</form>
Хранение файла
Вы можете сохранить файл в базе данных или просто как файл в системе диска сервера. Что бы вы ни выбрали, нет необходимости разбивать файл на его строки. Сохраните файл как единое целое.
Прочитайте эту запись, которая обсуждает тему.
Здесь достаточно сказать, что поле вашей базы данных должно иметь соответствующий тип и размер для хранения файла.
Лично я фанат хранения файла на диске и имени файла в базе данных.
Обработка загрузки файлов
Вы можете сохранить файл где-нибудь на диске. Это не лучший способ сделать это, но самый простой способ продемонстрировать. Достаточно примера на SO, например Как загрузить & Сохранить файлы с желаемым именем
$info = pathinfo($_FILES['upload']['name']);
$ext = $info['extension']; // get the extension of the file
$newname = "newname.".$ext;
$target = 'mydocs/'.$newname;
move_uploaded_file( $_FILES['upload']['tmp_name'], $target);
Скачивание файла
Чтобы отобразить и загрузить файл, просто распечатайте содержимое в браузере.
ob_start();
// do things. See below
ob_clean();
flush();
readfile($file);
ob_flush();
Это отобразит файл и, вероятно, запутает браузер. Чтобы указать браузеру обрабатывать файл как документ Word, необходимо отправить соответствующие заголовки в браузер перед отправкой файла.
ob_start();
if(isset($_REQUEST['dlink']))
{
$file = $_REQUEST['dlink'];
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
ob_flush();
Других решений пока нет …