我使用此代码上传图片。我从stackoverflow获得了这段代码。我仍然无法上传图片。我在表设置2中更改了数据库连接设置。我创建了表,但我不确定我创建的表的属性是否正确。
<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 :(得分:1)
请参阅http://www.php.net/manual/en/features.file-upload.php
请尝试$_FILES['form_data']['tmp_name']
您也可以替换相当笨拙的
fread(fopen($form_data, "r"), filesize($form_data))
与
file_get_contents($_FILES['form_data']['tmp_name'])
答案 1 :(得分:1)
我不建议将二进制图像文件直接存储在数据库中。而是将其存储在磁盘上并将文件指针(文件目录+文件名)存储在数据库中。
答案 2 :(得分:1)
将文件存储在文件系统上的问题归结为数据库复制。您还需要文件系统复制,有时可能比数据库复制更难,尤其是当某些服务器可能是远程服务器时。
你的$ 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的知识。