2016-05-26 2 views
3

Я пытаюсь загрузить файл через php-форму, но я получаю эту ошибку;Php Form Uploading File

[26-May-2016 17:07:55 America/Detroit] PHP Warning: move_uploaded_file(../uploads/2/slider2.jpg): failed to open stream: No such file or directory in /home/tefotv/public_html/6/php/fileupload.php on line 38 
[26-May-2016 17:07:55 America/Detroit] PHP Warning: move_uploaded_file(): Unable to move '/tmp/php6SxeW0' to '../uploads/2/slider2.jpg' in /home/tefotv/public_html/6/php/fileupload.php on line 38 

fileupload.php

<?php 
include('../connect.php'); 
session_start(); 
header("refresh:1;url=../orders.php"); 
$orderid = $_SESSION['orderid']; 
$sender = $_SESSION['id']; 

if (!file_exists("../uploads/ $orderid ")) { 
    mkdir("../uploads/ $orderid ", 0700); 
} 

$target_dir = "/home/tefotv/public_html/6/uploads/$orderid/"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 

// Check if file already exists 
if (file_exists($target_file)) { 
    echo "Sorry, file already exists."; 
    $uploadOk = 0; 
} 
// Check file size 
if ($_FILES["fileToUpload"]["size"] > 500000) { 
    echo "Sorry, your file is too large."; 
    $uploadOk = 0; 
} 
// Allow certain file formats 
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" 
&& $imageFileType != "gif" && $imageFileType != "pdf") { 
    echo "Sorry, only JPG, JPEG, PNG & GIF & PDF files are allowed."; 
    $uploadOk = 0; 
} 
// Check if $uploadOk is set to 0 by an error 
if ($uploadOk == 0) { 
    echo "Sorry, your file was not uploaded."; 
// if everything is ok, try to upload file 
} else { 
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { 
     echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded."; 
     //Buradan itibaren 
     $filename = $_FILES["fileToUpload"]["name"]; 
     $query = $db->prepare("INSERT INTO orderfile SET orderid = ?, userid = ?, patch = ? "); 
     $insert = $query->execute(array($orderid, $sender, $filename)); 
     echo "UPDATED"; 

    } else { 
     echo "Sorry, there was an error uploading your file."; 
    } 
} 

?> 

Как я могу это исправить?

Благодаря

Обновление- Обновление- Обновление- Обновление- Обновление- Обновление- Обновление- Обновление- Обновление-

Когда я изменил код так, он создает папку/дата загрузки/2, но загрузить файл/загрузить папку.

<?php 
include('../connect.php'); 
session_start(); 
header("refresh:1;url=../orders.php"); 
     $orderid = $_SESSION['orderid']; 
     $sender = $_SESSION['id']; 

if (!file_exists("../uploads/$orderid ")) { 
    mkdir("../uploads/$orderid ", 0755); 
} 

$target_dir = "../uploads/$orderid"; 
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); 
$uploadOk = 1; 
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION); 
+1

'если (! File_exists ("../ загрузки/$ OrderID")) {' удалить пробелы и в 'mkdir (« ../ uploads/$ orderid », 0700);' – RiggsFolly

+0

@RiggsFolly не исправлено :(я получаю ту же ошибку – Can1

+0

Попробуйте удалить следующее из $ target_dir/home/tefotv – Brett

ответ

3

Я решил с этим кодам

<?php 
include('../connect.php'); 
session_start(); 
header("refresh:1;url=../orders.php"); 
     $orderid = $_SESSION['orderid']; 
     $sender = $_SESSION['id']; 

if (!file_exists("../uploads/$orderid")) { 
    mkdir("../uploads/$orderid", 0777); 
} 

$target_dir = "/home/tefotv/public_html/6/uploads/$orderid/"; 
+0

Я удаляю 2 пробела в конце tarket_dir и меняю разрешение на mkdir («../ uploads/$ orderid», 0777); – Can1

1
  • Проверьте, если каталог/код не имеет орфографические ошибки.
  • Также убедитесь, что в каталоге есть права на чтение + запись (не менее '0666 ', но '0755' может работать лучше).
  • Возможно, попробуйте полное имя пути ('path.to/public_html ').

Я могу добавить больше, если отсюда ничего не поможет. Пожалуйста, дайте мне знать, как все идет!

+0

Когда я add/в конце этого кода, он не работает. Когда я удаляю /, он загружает файл в один верхний каталог. $ target_dir = "../uploads/$orderid" – Can1

+0

Хорошо, я исправил проблему, но после загрузки страницы не отображается новый файл. Мне нужно обновить страницу для просмотра нового файла. Как я могу это исправить? Не могли бы вы мне помочь – Can1

+0

Это просто. Просто используйте 'header (" Location: [yourpage.php] ");' и это должно быть хорошо. :) –

3

Вам нужно увеличить max_upload_filesize в php.ini

+0

Возможно, вы можете предоставить строку кода, как увеличить максимальный размер загрузки и предложить правильный размер? –

+0

upload_max_filesize = 64M post_max_size = 64M, это происходит при повторной установке apache/php. Вы можете попробовать сначала загрузить файл smaal. В случае успеха эти настройки являются проблемой. – Arno

+0

@Arno Я пробую с файлом 10KB :) – Can1