2015-06-10 7 views
1

У меня есть форма, где пользователь заполняет несколько полей ввода, и они также могут загружать изображение. Недавно я добавил другое поле ввода, в котором пользователь может загрузить дополнительное изображение.Загрузка изображения не работает должным образом

<label for="photo">Facility Roof Plan:</label>      
<input type="file" id="facilityroofplan" name="facilityroofplan" /> 

Когда пользователь отправляет мою форму, он должен загрузить это изображение, а также сохранить путь к каталогу в db. Информация сохраняется в моем db должным образом без каких-либо проблем, однако, когда я проверяю, было ли загружено изображение, его там нет.

$directoryPath = "../images/" . $selectedAssocAccount . "/" . $facilityID;  
//create the directory 
mkdir($directoryPath, 0775); 

//facility roof plan 
if(!empty($_FILES["facilityroofplan"]["name"])){ 

    //directory path for the facility photo to reside in 
    $facilityRoofPlan = "../images/". $selectedAssocAccount ."/" . $facilityID . "/" . basename($_FILES["facilityroofplan"]["name"]);         
    if($_FILES['facilityroofplan']['error'] == UPLOAD_ERR_OK) { 
     $status_msg = ''; 
     $from = $_FILES["facilityroofplan"]["tmp_name"]; 
     $saved = save_facility_roof_plan($from, $facilityPhoto, $status_msg); 
    } else{ 
     echo "Error uploading facility image.";    
    } 

    //insert into photo table 
    $photoQuery = "INSERT INTO facility_roof_plan (facility_id, roof_plan) VALUES ('$facilityID', '$facilityRoofPlan')"; 
    mysqli_query($dbc, $photoQuery)or die(mysqli_error($dbc)); 
} 

И это то, что моя save_facility_roof_plan функция выглядит следующим образом:

function save_facility_roof_plan($from, $to, $status_msg) { 
    // Check if file already exists 
    if (file_exists($to)) { 
     $status_msg = "Sorry, facility photo already exists."; 
     return false; 
    } 
    if (move_uploaded_file($from, $to)) { 
     $status_msg = "The file ".basename($to)." has been uploaded."; 
     return true; 
    } 
    $status_msg = "Sorry, there was an error uploading a photo."; 
    return false; 
} 

Я делал это в нескольких других местах, и у меня нет проблем с загрузкой изображений.

, где я здесь не так?

+0

Что, что и в 3-й параметр в функции –

+0

это решить проблему? –

+0

Ваш move_upload кажется сумасшедшим для меня ... просто попробуйте этот 'move_uploaded_file ($ _ FILES [" fileToUpload "] [" tmp_name "], $ target_file))' –

ответ

2

В своем коде, у вас есть линия

$saved = save_facility_roof_plan($from, $facilityPhoto, $status_msg); 

Но нет ни одной переменной $facilityPhoto где-нибудь в том, что вы вывесили. Я предполагаю, что это должно быть изменено на $facilityRoofPlan, поскольку вы устанавливаете этот путь, но никогда не используете его.

Переменная $saved никогда не проверяется на наличие ошибок, которые могли бы показать вам, почему она не работает.

Try:

$facilityRoofPlan = "../images/". $selectedAssocAccount ."/" . $facilityID . "/" . basename($_FILES["facilityroofplan"]["name"]);         
if($_FILES['facilityroofplan']['error'] == UPLOAD_ERR_OK) { 
    $status_msg = ''; 
    $from = $_FILES["facilityroofplan"]["tmp_name"]; 
    $saved = save_facility_roof_plan($from, $facilityRoofPlan, $status_msg); 
    if (!$saved) { 
     echo "Error saving roof plan image: {$status_msg}"; 
    } 
} else{ 
    echo "Error uploading facility image.";    
} 
+0

Черт, забыл изменить это! Кроме того, спасибо за дополнительную проверку, мне было интересно, почему ничего не отображается. Спасибо за помощь! – Zoxac

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