0

这是一个从另一个页面接收上传图像的文件。图像被接收并保存在服务器上(该部分正在工作)查询不是。我用文件名的虚拟值手动将查询输入到 phpMyAdmin 中,它可以工作。我将该虚拟查询放入此代码中,但它不起作用。我无法弄清楚我做错了什么。

<?php
$ds  = DIRECTORY_SEPARATOR;  
$storeFolder = 'img';   
if (!empty($_FILES)) {
    $tempFile = $_FILES['file']['tmp_name'];              
    $targetPath = $_SERVER['DOCUMENT_ROOT']. $ds. $storeFolder . $ds;  
    $targetFile =  $targetPath. $_FILES['file']['name'];  
    move_uploaded_file($tempFile,$targetFile); 
    mysql_query("INSERT INTO `photos` (photo_id, file_name) VALUES ('', '".$_FILES['file']['name']."');"); 
}
?>  
4

1 回答 1

1

假设 photo_id 是自动递增的,这里对您的代码进行了一些修复:

<?php
$ds  = DIRECTORY_SEPARATOR;  
$storeFolder = 'img';   
if (!empty($_FILES)) {
    $name = $_FILES['file']['name'];
    $tempFile = $_FILES['file']['tmp_name'];              
    $targetPath = $_SERVER['DOCUMENT_ROOT']. $ds. $storeFolder . $ds;  
    $targetFile =  $targetPath. $_FILES['file']['name'];  
    move_uploaded_file($tempFile,$targetFile); 
    $query = "INSERT INTO photos (photo_id, file_name) VALUES (NULL, '".$name."')"; 
    $result = mysql_query($query);
    if (!$result) die ("Database access failed: " . mysql_error());
}
?>  

这样你应该能够调试你的代码。现在,如果您需要从 Javascript 调用中获取结果,您应该使用 AJAX。

在这里检查:

向 php 页面发送请求,然后使用 ajax 返回结果

于 2013-05-29T22:56:10.177 回答