2015-07-24 2 views
-1

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

Я в основном хочу переместить файл в папку «uploads» на моем сервере, а затем сохранить путь в базе данных.

Загруженный файл не находит отражение в базе данных.

if(isset($_POST['submit'])) 
{ 
    require("dbconn.php"); 
    $filename = $_POST['filename']; 
    $name = $filename . "." . pathinfo($_FILES['ufile']['name'],PATHINFO_EXTENSION); 
    //$name = $_FILES['ufile']['name']; 
    //$size = $_FILES['file']['size'] 
    //$type = $_FILES['file']['type'] 

    $tmp_name = $_FILES['ufile']['name']; //was tmp_name 
    $error = $_FILES['ufile']['error']; 
    if(isset($name)) 
    { 
     if(!empty($name)) 
     { 
      $location = 'uploads/'; 

      if(move_uploaded_file($tmp_name, $location.$name)) 
      { 
       echo "hi"; 
       $filename = $_POST['filename']; 
       $filepath = $location.$name; 
       $advname = $_POST['advname']; 
       $year = $_POST['year']; 
       $cname = $_POST['cname']; 
       $ctype = $_POST['ctype']; 
       $sqlq = "INSERT INTO file(filename, filepath, advname, year, cname, ctype) VALUES ('".$filename."','".$filepath."','".$advname."','".$year."','".$cname."','".$ctype."');"; 
       $result = mysql_query($sqlq); 
       if(!$result) 
       { 
        die("Error in connecting to database!"); 
       } 
      } 
     } 
    } 
} 

Там, кажется, проблема в заявлении

if(move_uploaded_file($tmp_name, $location.$name)) 

. Это условие оценивается как ложное.

+0

Что изменилось на вашем сервере? Вы заглянули в журнал ошибок на своем сервере. – RiggsFolly

+0

ничего не вижу здесь. Убедитесь, что ваша форма использует метод POST с правильным enctype, у входа есть правильный атрибут имени, и папка имеет права доступа к ней. Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега , например '

+0

Я замечаю, что вы загружаете потенциальные ошибки загрузки в '$ error = $ _FILES ['ufile'] ['error'];', но вы никогда не видите, есть ли там код ошибки! Возможно, это пролило бы свет на вашу проблему – RiggsFolly

ответ

1

Если $_FILES['ufile']['error'] дает вам значение 1, то upload_max_filesize в вашем конфиге устанавливается меньшее значение, которое файл, который вы пытаетесь загрузить.

Вы не можете изменить upload_max_filesize в своем коде.

Если у вас есть доступ к php.ini, .htaccess, httpd.conf или .user.ini вы можете изменить это значение в любой из этих файлов.

Так что вам нужно будет добавить или изменить параметр от значения по умолчанию 2M (2meg)

upload_max_filesize = 20M 

Ее также хорошая идея, чтобы проверить post_max_size в то же время, как это может также оказывать влияние на максимальный размер загруженного файла, убедитесь, что post_max_size больше, чем upload_max_filesize, так как это должно позволить дополнительное пространство для других полей, которые вы будете загружать как часть сообщения

+0

Плюс, ОП, похоже, уже опубликовал это http://stackoverflow.com/q/29483616/ –

+0

Вы можете положить 50 в наличные деньги до ;-), возможно, я заберу его каждый раз, чтобы получить меня капучино и корица датская. Вы можете присоединиться ко мне lol –

+0

Теперь мне нужно пойти и сделать бутерброд, вы сделали меня голодным. – RiggsFolly

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