2008-12-11 2 views
-3

Я использовал этот код для загрузки рисунка. Я получил этот код из stackoverflow. Я все еще не могу загрузить изображение. Я изменил параметры подключения db в настройках таблицы 2. Я сделал таблицу, но я не уверен, правильны ли свойства таблицы, которую я создал.Загрузка изображения с использованием php

<html> 
<head><title>Store Some Binary File to a DB</title></head> 
<body> 

<?php 
if ($submit) { 
    $conn = mysql_connect("localhost", "your_username", "your_password") 
     or die ("Error connecting to database."); 

    mysql_select_db("your_database", $conn) 
     or die ("error connecting to database."); 

    $data = addslashes(file_get_contents($_FILES['form_data']['tmp_name']) 


    $result = mysql_query ("INSERT INTO your_table ". 
     "(description,bin_data,filename,filesize,filetype) ". 
     "VALUES ('$form_description','$data','$form_data_name',". 
     "'$form_data_size','$form_data_type')", 
     $conn); 

    $id = mysql_insert_id(); 
    print "<p>This file has the following Database ID: <b>$id</b>"; 

    mysql_close(); 

} else { 
?> 

    <form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data"> 
    File Description:<br> 
    <input type="text" name="form_description" size="40"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 
    <br>File to upload/store in database:<br> 
    <input type="file" name="form_data" size="40"> 
    <p><input type="submit" name="submit" value="submit"> 
    </form> 

<?php 

} 

?> 

</body> 
</html> 

Кроме того, помогите мне в восстановлении изображения из базы данных и показе его на странице.

do u think thiis будет работать сейчас?

+0

исправьте орфографию и укажите остальную часть своего сценария. – 2008-12-11 16:25:01

ответ

1

См http://www.php.net/manual/en/features.file-upload.php

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

Вы также мог бы заменить довольно неуклюжий

fread(fopen($form_data, "r"), filesize($form_data)) 

с

file_get_contents($_FILES['form_data']['tmp_name']) 
1

Я бы не предложил хранить ваши би файл исходного файла непосредственно в базе данных. Вместо этого сохраните его на диске и сохраните указатель файла (каталог файлов + имя файла) в БД.

+0

Как я могу сохранить изображение в базе данных с помощью php, пожалуйста, помогите мне. – 2008-12-12 03:03:46

1

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

Не заданы никакие ваши переменные $ form_ (если только код, который я не вижу, или вы «опасно», имеют регистровые глобальные переменные). Также вы будете хотеть addlashes (или mysql_real_escape_string) для любых запросов, которые принимают значения REQUEST, иначе ваш сценарий будет подвержен SQL-инъекции.

Вы хотите:

$form_description = isset($_POST['form_description']) ? $_POST['form_description'] : false; 

Другие переменные даже не будут опубликованы. Знаете ли вы какие-либо HTML и PHP? это легко разрешить, но я не пишу это для вас!

Что нам нужно некоторые отзывы, что производит сценарий .. вы можете получить изображение обратно, выполнив:

$result = mysql_query ("SELECT `bin_data` FROM `your_table` WHERE `id` = ".$id, $conn); 

Затем сделать, например (замена типа содержимого с соответствующим типом определяется из массива файлов):

$result_data = mysql_fetch_array($result, MYSQL_ASSOC); 
header('Content-Type: image/jpg'); 
echo $result_data['bin_data']; 
exit; 

Вам нужно сделать немного больше работы для этого скрипта, и для этого требуется знание HTML, PHP и MySQL.