使用php上传图片

问题描述:

我使用此代码上传图片。我从*得到了这段代码。我仍然无法上传图片。我在表格设置中更改了数据库连接设置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> 

此外,帮助我从数据库中检索图像并在页面上显示它。

你认为thiis现在能工作吗?

+0

请修复拼写并提供脚本的其余部分。 – 2008-12-11 16:25:01

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']) 

我不会建议存储你的bi nary图像文件直接在数据库中。而应将其存储在磁盘上,并将文件指针(文件目录+文件名)存储在数据库中。

+0

如何使用PHP将数据保存在数据库中请帮助我。 – 2008-12-12 03:03:46

在文件系统上存储图像的问题归结为数据库复制。您还需要文件系统复制,有时可能比数据库复制更难,特别是当某些服务器可能是远程的时候。

没有设置任何$ form_变量(除非我不能看到代码或者'危险地'注册全局变量)。你也可以在任何接受REQUEST值的查询上添加addslashes(或者mysql_real_escape_string),否则你的脚本很容易被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。