2017-04-09 70 views
0

嘿,我有以下代码:uploade图像MySQL数据库失败

index.php

select.php

,你也可以在GitHub上找到整个工程(简单的在线图书馆)

它工作正常,并保存在mysql数据库书名bookauthor书页,但它只是保存图像名称和数据库中的图像路径我只是想将图像移动到新的文件夹称为图像,并尝试几种方法,但没有一个窝对我来说。

+0

首先您修复连接'$连接= mysqli_connect($ DB_HOST,$ db_username,$ DB_PASS,$ DB_NAME);' – Mario

+0

加上'的var_dump($文件);''之前$ query'也看到什么信息你得到 – Mario

+0

@Mario谢谢你的回答,我修复了我的连接,并添加了var_dump,但是它什么都没显示,只是浏览器提示框显示[error。](http://i.imgur.com/elCHWPs.png )3线:'$文件=和addslashes(的file_get_contents($ _ FILES [ “图片”] [ “tmp_name的值”));' – jackson

回答

1

应该是固定的,如下

<?php 
require_once("db.php"); 
$file = addslashes(file_get_contents($_FILES["images"]["tmp_name"])); 
$sql = "INSERT INTO test1(name, lastname, age , images) VALUES('".$_POST["name"]."', '".$_POST["lastname"]."', '".$_POST["age"]."', '".$file."')"; 
if(mysqli_query($connect, $sql)) 
{ 
    echo 'infos saved'; 
} 
?> 

UPDATE

您的AJAX脚本只发送文件名,而不是图像。正确的JS应该与下面的类似。

$.ajax({ 
url: "ajax_php_file.php", // Url to which the request is send 
type: "POST",    // Type of request to be send, called as method 
data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) 
contentType: false,  // The content type used when sending data to the server. 
cache: false,    // To unable request pages to be cached 
processData:false,  // To send DOMDocument or non processed data file it is set to false 
success: function(data) // A function to be called if request succeeds 
{ 
    // do something ex. $('#loading').hide(); 
} 
}); 
+0

为什么要存储临时名称?他以后如何获得形象? – Mario

+0

@Mario使用的file_get_contents读取文件的内容,它应该工作 –

+0

@Оzgur感谢答案,我用旅游代码和更新我的,但仍然没有改变,没有什么上传图片排DB它只是显示在浏览器的警告框这个[错误。 ](http://i.imgur.com/elCHWPs.png)3行:'$文件=和addslashes(的file_get_contents($ _ FILES [ “图像”] [ “tmp_name的值”]));' – jackson