2014-02-07 3 views
0

Я новичок в php, поэтому, пожалуйста, простите меня. Я пытаюсь сделать загрузку изображения на сервер, а затем загрузить имя изображения в базу данных, чтобы я мог его вызывать. Однако, когда я пытаюсь вставить имя изображения в базу данных, он сообщает мне, что имя файла называется массивом. Я думаю, что неправильно называю имя файла, но я понятия не имею, как вызвать имя файла. Мой код выглядит следующим образом:как я могу назвать имя файла

<?php 
$pic=($_FILES['file']['name']); 
$allowedExts = array("gif", "jpeg", "jpg", "png"); 
$temp = explode(".", $_FILES["file"]["name"]); 
$extension = end($temp); 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/jpg") 
|| ($_FILES["file"]["type"] == "image/pjpeg") 
|| ($_FILES["file"]["type"] == "image/x-png") 
|| ($_FILES["file"]["type"] == "image/png")) 
&& ($_FILES["file"]["size"] < 200000) 
&& in_array($extension, $allowedExts)) 
    { 

     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     mysql_select_db($database_myconn, $myconn) or die(mysql_error()) ; 
     mysql_query("INSERT INTO uploads (uploade) VALUES ($pic)") ; 
     } 
} 

?> 
+4

Существует ** нет больше поддержки ** для 'mysql_ *' функции, они [** официально осуждается ** ] (https://wiki.php.net/rfc/mysql_deprecation), ** больше не поддерживается ** и будет [** удален **] (http://php.net/manual/en/function.mysql -connect.php # warning) в будущем. Вы должны обновить свой код с помощью [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/mysqli), чтобы обеспечить функциональность вашего проекта в будущем. –

ответ

0

Проверьте форму. Это швы как вы используете множественную загрузку файлов, так что ваша $_FILE структура массива Somthing как этот

array(1) { 
["upload"]=>array(5) { 
    ["name"]=>array(3) { 
     [0]=>string(9)"file0.txt" 
     [1]=>string(9)"file1.txt" 
     [2]=>string(9)"file2.txt" 
    } 
    ["type"]=>array(3) { 
     [0]=>string(10)"text/plain" 
     [1]=>string(10)"text/plain" 
     [2]=>string(10)"text/plain" 
    } 
    ["tmp_name"]=>array(3) { 
     [0]=>string(14)"/tmp/blablabla" 
     [1]=>string(14)"/tmp/phpyzZxta" 
     [2]=>string(14)"/tmp/phpn3nopO" 
    } 
    ["error"]=>array(3) { 
     [0]=>int(0) 
     [1]=>int(0) 
     [2]=>int(0) 
    } 
    ["size"]=>array(3) { 
     [0]=>int(0) 
     [1]=>int(0) 
     [2]=>int(0) 
    } 
} 
} 
+0

Хорошо, так что если это так, что в массиве, то как я могу вызвать имя файла для вставки в мою таблицу базы данных? Спасибо – suckms

+0

Итак, у вас есть несколько файлов для загрузки файлов? Если да, вы хотите сохранить информацию обо всех файлах в базе данных? Можете ли вы запустить var_dump ($ _ FILES ["file"] ["name"]); и добавьте его в вопрос. –

+0

Ахх, ладно, я понял. Я добавил это $ pic = basename ($ _FILES ['file'] ['name']); и теперь я могу добавить имя файла в базу данных. Спасибо! :) – suckms

Смежные вопросы