2014-05-23 3 views
-2

방금 ​​파일 업로드 코드를 만들었는데 왜 파일 업로드가 작동하지 않는지 궁금합니다. localhost에서 내 이미지 폴더의 사용 권한을 확인했는데 괜찮을 것 같습니다. 나는 문제가 정확히 어디 있는지 모른다. 어떤 아이디어?업로드 된 이미지가 이미지 폴더에 없음

<?php 

require "config.php"; 
require "functions.php"; 
require "database.php"; 

if(isset($_FILES['fupload'])){ 
    $filename = addslashes($_FILES['fupload']['name']); 
    $source = $_FILES['fupload']['tmp_name']; 
    $target = $path_to_image_directory . $filename; 
    $description = addslashes($_POST['description']); 
    $src = $path_to_image_directory . $filename; 
    $tn_src = $path_to_thumbs_directory . $filename; 

    if (strlen($_POST['description'])<4) 
     $error['description'] = '<p class="alert">Please enter a description for your photo</p>'; 
    if($filename == '' || !preg_match('/[.](jpg)|(gif)|(png)|(jpeg)$/', $filename)) 
     $error['no_file'] = '<p class="alert">Please select an image, dummy! </p>'; 
    if (!isset($error)){ 
     move_uploaded_file($source, $target); 

     $q = "INSERT into photo(description, src, tn_src)VALUES('$description', '$src','$tn_src')"; 
     $result = $mysqli->query($q) or die (mysqli_error($myqli)); 

     if ($result) { 
      echo "Succes! Your file has been uploaded"; 
     } 
     createThumbnail($filename); 
    } 
} 
?><!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title>Upload</title> 
    <link rel="stylesheet" href="css/styles.css"> 
</head> 
<body> 
    <h1>My photos</h1> 

    <ul><?php getPhotos(); ?></ul> 
    <h2>Upload a photo</h2> 

    <form enctype="multipart/form-data" action="index.php" method="post"> 
     <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> 
     <input type="file" name="fupload" /><br/> 
     <textarea name="description" id="description" cols="50" rows="6"></textarea><br/> 
     <input type="submit" value="Upload photo" name="submit" /> 
    </form> 

    <?php 
    if (isset($error["description"])) { 
     echo $error["description"]; 
    } 

    if (isset($error["no_file"])) { 
     echo $error["no_file"]; 
    } 

    ?> 

</body> 
</html> 
+0

창문에 있습니까? localhost가 C : //입니까? –

+0

안녕하세요, 아니요. OSX를 사용하고 있습니다. 업로드 된 이미지가 데이터베이스에 저장되어 있기 때문입니다. 내 유일한 문제는 내 이미지 폴더에 이미지가 표시되지 않는다는 것입니다. – user2885746

+0

Apache/Nginx를 실행하는 사용자에게 해당 폴더에 대한 쓰기 권한이 있습니까? –

답변

0

$ path_to_thumbs_directory에 디렉토리 구분 기호를 추가했는지 확인하십시오. 그리고 $ filename에 addslashes를 사용할 필요가 없습니다.

+0

제발 답변으로 코멘트를 게시하지 마십시오. http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reference-to-comment-what-can-i-do-instead/214174#214174 –

관련 문제