2011-10-17 2 views
0

, 서버에 이미지를 업로드하려고합니다. 서버에 'images'폴더가 있습니다. 'ok'버튼을 클릭 할 때마다 ... "파일 업로드에 문제가 있습니다"라는 오류 메시지가 나타납니다. 내 코드의 문제는 어디에 있습니까?다음 코드에서 PHP를 사용하여 이미지를 서버에 업로드

html -----------------------------------------

 <form method="post" action="newproduct.php" enctype="multipart/form-data"> 

     Item Image:<input type="file" name= "photo" size="40" /> 
     Description:<textarea name="description" cols="40" rows="1"></textarea> 
     <input name="submit" type="submit" value = "Submit" /> 
     </form> 

php------------------------------------------------------- 

$target = "images/"; 
$target = $target . basename($_FILES['photo']['name']); 

       $pic=($_FILES['photo']['name']); 
       $description =$_POST["description"]; 


//checking for empty values 
if (empty($pic) || empty($description)) 
    { 
    echo "Please enter all field values."; 
     }  
else 
    { 

       //Connecting to database server  

     //Connecting to database 


     //INSERT Query 
     $SQLstring = "INSERT INTO items VALUES(null,'$pic' ,'$description')"; 
     $QueryResult = @mysqli_query($DBConnect, $SQLstring) 
     or die ("<p> Unable to execute the query. </p>". 
       "<p> Error code " . mysqli_errno($DBConnect) . ":" . mysqli_error($DBConnect))."</p>"; 


       if(move_uploaded_file($_FILES['photo']['name'], $target)) 
       { 
       echo "The file has been added to the directory"; 
       } 
       else 
       { 

       echo "Sorry, there was a problem uploading your file."; 
       } 

       mysqli_close($DBConnect); 
     }   


?> 
그것은 않을 것입니다
+0

파일이 업로드되었거나되지 않았습니까? – Dev

+0

@dev 예 폴더 'images'가 이미 존재합니다. – Ayman

답변

0

당신이 (.. 아약스와) ... 자바 스크립트에서 같은 사진을 업데이트하지 않는 ... 그렇게 할 수 없습니다 는 ... 그런

작동하지만합니다. ... 당신은 당신은 어떻게 든 해당 게시물을 제출해야

...

당신은 몇 가지 솔루션을 가지고 ...이 가짜 수 : 유 가짜 업로드 아약스 또는 iframe이에 플래시 ..

을 SE는 또한 .. 그가

다음

몇 가지 데모 & 다운로드 링크입니다 .. 당신을 위해 모든 물건을 할 것입니다 jQuery를 사용할 수 있습니다

당신이 새 이름으로 "tmp_name"를 이동해야 업로드 된 파일을 이동하려면

..

if (!move_uploaded_file($_FILES['photo']['tmp_name'], $path.$_FILES['photo']['name'])) 
    echo 'CANNOT MOVE {'.$_FILES['photo']['name'].'}' . PHP_EOL; 

당신이 당신의 파일을 업로드

등, 아파치는 돌봐 기본적으로는에/tmp를하다 (리눅스를 사용하는 경우 ... 윈도우의 경우에는 알지 못합니다.)

추신 : 귀하의 스크립트 성능을 위해서는 문자열 대신 ""대신 사용해야합니다. " 변수에 대한 모든 ""(문자열) == 추가 작업 .. 및 ''을 건너 뜁니다.

+0

상위 코드에서 아약스가 없으므로 파일을 업로드 할 때 오류가 있음을 보여주는 빈 값 오류가 표시되지 않습니다. – Ayman

+0

@Ayman이 경우 tmp 파일을 이동해야합니다 .. '이름'이 아님 .. 'tmp_name'이라고 생각합니다 ... 내 게시물을 편집합니다 ... – Alex

0

이미지 폴더에는 777 권한이 있어야합니다. 기본적으로 사용 권한은 655이고 PHP는 현재 폴더 외부에 파일을 업로드/이동/복사 할 수있는 권한이 없습니다 (하위 폴더는 다른 폴더로 계산됩니다)

+0

어떻게이 권한을 설정할 수 있습니까? – Ayman

+0

을 FTP 클라이언트에서 마우스 오른쪽 버튼으로 클릭하고 "파일/관리 권한" –

관련 문제