2014-05-15 3 views
0

현재 양식을 사용하여 파일을 업로드합니다.성공적인 업로드 사용자에게 알리기

양식은 index.html을이고 같습니다 그러나 올바른 위치에

<?php 
move_uploaded_file ($_FILES['file'] ['tmp_name'], "uploads/{$_FILES['file'] ['name']}"); 
header('Location: index.html'); 
exit; ?> 

파일 업로드, 나는 방법이 필요합니다 :

<div id="submit"> 
    <form action="upload.php" method="post" enctype="multipart/form-data"> 
    Select XML file: <input type="file" name="file"><br><br> 
    <input type="submit" value="Upload"> 
    </form> 
</div><!--end submit--> 

upload.php로 파일의 모습 업로드가 완료되었음을 사용자에게 경고합니다. 누군가 제발 좀 도와 줄래?

+0

왜 그냥가 당신의'upload.php'는 다시 전송하는 응답 성공 메시지를 포함 브라우저? 리디렉션하는 대신에, 그것은 있습니다. – Wyzard

+0

다시로드하여 양식을 다시 제출하지 못하게하려면 리디렉션해야합니다. – jeffff

답변

2

당신이

header에서
<?php 
if(move_uploaded_file ($_FILES['file'] ['tmp_name'], "uploads/{$_FILES['file'] ['name']}")) 
{ 
echo "file uploaded"; 
header("refresh:5;url=index.html"); 
exit; 
} 
else 
{ 
echo "file not uploaded"; 
header("refresh:5;url=index.html"); 
exit; 
} 
?> 

5 초에 index.html로 리디렉션됩니다 시도

0

가장 쉬운 방법은 index.html을 index.php로 변경 한 다음 헤더 함수를 사용하여 index.php?uploaded=1에 get 매개 변수를 추가하는 것입니다. 그런 다음 index.php 페이지에서 다음과 같은 매개 변수를 확인하십시오.

if (isset($_GET['uploaded']) && $_GET['uploaded'] === 1) echo "Your upload/move was successful!"; 
+1

글쎄, 매개 변수가'move_uploaded_file'의 반환 값에 조건부로 추가되기를 원할 것입니다. –

+0

@PatrickQ correct,이 코드는 성공 사례로 가정합니다. –

+2

질문의 요점은 "업로드가 성공적이라는 것을 사용자에게 알리는 방법이 필요합니다"입니다. 업로드 실패시에도 코드에 성공 여부가 표시됩니다. 실제로 보안과 관련이 없습니다. 나는 애매한 태도로 애쓰지 않으려 고하고 있습니다. 나는 그저 쓰여진대로 답이 사용자의 주요 필요 사항을 여기에서 해결하지 못한다고 생각합니다. –

0

PHP에서 플래시 메시지를 구현하는 것이 좋습니다. 기본적으로 세션에 메시지를 저장하고 사용자에게 표시합니다.

타사 코드 here을 사용하는 예가 있습니다. 또는 직접 구현을 롤업 할 수도 있습니다. 실제로 매우 간단한 예제 here이 있습니다.

GET 매개 변수를 기반으로 메시지를 표시해도 작동하지만 특정 URL을 누르면 메시지가 사용자에게 표시되므로 지저분해질 수 있습니다.

다음과 같이 (세션 메시지 설정 및 인쇄) 아주 오래 전에 사용했던 몇 가지 기능이 있습니다. 내가보기 엔이를 사용하기 전에 링크로보고 권 해드립니다 :이

function set_session_message($type, $message) { 
    $_SESSION['message'] = array('type' => $type, 'message' => $message); 
} 

function print_session_message() { 
    $output = ''; 

    if (!empty($_SESSION['message'])) {    
     if ($_SESSION['message']['type'] == 'success') { 
      $output = '<p class="success">' . $_SESSION['message']['message'] . '</p>'; 
     } elseif ($_SESSION['message']['type'] == 'error') { 
      $output = '<p class="error">' . $_SESSION['message']['message'] . '</p>'; 
     } 
    } 

    unset($_SESSION['message']); 

    return $output; 
} 

을, 당신이 할 거라고하면 인덱스 페이지로 리디렉션, 성공적으로 업로드에 set_session_message()를 호출 한 다음 print_session_message()를 호출합니다.

관련 문제