2012-08-01 2 views
2

파일 업로드에 문제가 있습니다. 내 로컬 서버에 파일을 보내려고하면 POST에 대한 응답으로 "301 Moved Permanently"이 표시됩니다. 업로드 디렉토리에 파일이 생성되지 않았습니다. 다음은 index.php 및 upload.html 코드입니다. localhost로 $ BASE_URL 점/testpage파일 업로드 슬림 : 301에 POST 응답

[index.php에]

$app->get('/upload/', function() use ($app) { 
    global $base_url; 
    return $app->render('upload.html', array('base_url' => $base_url)); 
}); 

$app->post('/upload/', function() use ($app) { 
    $imagename = $_FILES['image']['name']; 
    $unique_id = md5(uniqid(rand(), true)); 
    $filetype = strrchr($imgname, '.'); 
    $new_upload = 'upload' . $unique_id . $filetype; 
    move_uploaded_file($_FILES['image']['tmp_name'], $new_upload); 
    //$the_upload = copy($_FILES['image']['tmp_name'], $new_upload); 
    //@chmod($new_upload, 0777); 
    $app->redirect('/'); 
}) 

[하고 Upload.html]

<html> 
    <body> 
    <form action="{{base_url}}/upload" method="POST"> 
     <input type="file" name="photo" value="" id="image" /> 
     <input type="submit" value="Upload image" /> 
    </form> 
    </body> 
+0

대신 무엇을하고 싶습니까? 파일을 업로드 한 후 리디렉션을 보내고 있습니다 :'$ app-> redirect ('/'); ' – drew010

+0

네,하지만 리디렉션되지 않습니다. $ app-> post ('/ upload /')는 실행되지 않습니다. 그것은 단지 페이지를 다시로드/업로드합니다. – GeekDaddy

+0

'move_uploaded_file' 결과를 확인해보세요.'$ new_upload'의 경로가 쓰기 가능하지 않거나 전체 경로가 필요할 수도 있습니다. 질문에 명시된대로 업로드 할 때 당신이나 당신은 301 Moved Permanently 응답을받지 못합니까? – drew010

답변

0

당신은 $ _FILES 배열에 '사진'이 아닌 참조해야한다 '영상'. 입력 태그의 id 필드는 양식 데이터에서 전송되지 않으며 브라우저에서만 사용됩니다.