2012-06-19 4 views
0

업로드 된 이미지 파일에서 미리보기 이미지를 만든 다음 서버에 업로드하는 데 문제가 발생했습니다.업로드 된 파일에서 PHP가 생성되어 서버로 이동

현재로서는 미리보기 이미지를 생성하고 임시로 저장 한 다음 호출자에게 반환하는 기능이 있습니다.

그럼 내가하려는 것은 move_uploaded_file (tempthumb, path)로 만든 엄지 이미지를 업로드하는 것입니다. 발신자 여기

function createThumb($image, $thumbWidth) 
{ 
    // load image and get image size 
    $img = imagecreatefromjpeg("{$image}"); 
    $width = imagesx($img); 
    $height = imagesy($img); 

    // calculate thumbnail size 
    $new_width = $thumbWidth; 
    $new_height = floor($height * ($thumbWidth/$width)); 

    // create a new temporary image 
    $tmp_img = imagecreatetruecolor($new_width, $new_height); 

    // copy and resize old image into new image 
    imagecopyresized($tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    return $tmp_img; 

} 

return $tmp_img; // Here I return the new image. Is this the proper way to get a binary image back?? 

됩니다 : 여기

는 createThumb 기능과 발신자입니다

$thumb = createThumb($_FILES['propform-previmg']['tmp_name'], $max_previmg_width); 
     $filenamepath = $src_dir . '/thumb/' . $_FILES['propform-previmg']['name']; 
     if (!move_uploaded_file($thumb, $filenamepath)) 
      echo "Error moving file {$filenamepath}"; 

난 그냥 직접 먼저 축소판을 만들려고 노력하지 않고 업로드 된 파일을 업로드했는데, 그것은 잘 작동했다. 그래서 내가 createThumb 함수에서 반환하는 변수에 오류가있는 것 같아요,하지만 정확히 무엇을 알아낼 수 없습니다.

또한 이미지 작성자 (file, path)가있는 createThumb 함수가 아니라 호출자 코드에서 업로드해야합니다.

감사합니다. manual에서

답변

0

첫째 줄 :

이 기능 검사 파일명이 지정한 파일 (이 PHP의 HTTP POST 업로드 메커니즘 통해 업로드 의미 ) 유효한 업로드 파일이 있는지 확인한다. 파일이 유효하면 대상에서 지정한 파일 이름으로 이동합니다.

미리보기 이미지가 업로드되지 않았지만 파일이 아니며 이미지 리소스 일뿐입니다. 이미지를 작성하려면 imagejpeg($resource, $filename)과 같은 것을 호출하여 $filename에 지정된 경로에 씁니다.

+0

그래서 createThumb() 함수에서 가져온 리소스의 이름을 업로드 된 파일 이름으로 변경해야합니까? 나는 내가 두려워한다는 것을 완전히 이해하지 못한다. 대답을 주셔서 감사합니다 –

+0

코드의 맥락에서, 당신은 이런 뜻인가요? 이름 바꾸기 ($ thumb, $ _FILES [ 'propform-previmg'] [ 'tmp_name']); 이사하기 전에? –

+0

@OyvindAndersson이 (가) 편집을 참조하십시오. – CodeCaster

관련 문제