php
  • file
  • upload
  • move
  • 2012-07-01 4 views 1 likes 
    1

    Chrome의 move_uploaded_file 함수에 문제가 있습니다.PHP Chrome의 move_uploaded_file 관련 문제

    IE에서는 완벽하게 작동합니다. 여기에 업로드 스크립트 (upload.php로)입니다 :

    <?php 
    session_start(); 
    include "./global.php"; 
    
    
        $res = mysql_query("SELECT * FROM users WHERE id='".$_SESSION['uid']."'"); 
        $row = mysql_fetch_assoc($res); 
        $userid = $row['id']; 
        $targetFolder = "/var/www/picturebox/albums/$userid/"; 
    
        $tempFile = $_FILES['Filedata']['tmp_name']; 
        var_dump($targetFolder.$userid."_"); 
        move_uploaded_file($tempFile,$targetFolder.$_FILES['Filedata']['name']); 
    
    ?> 
    

    html로 :

    <input type="file" name="file_upload" id="file_upload" /> 
    

    HTML을 읽는 기능 :

    $(function() { 
        $('#file_upload').upload({ 
         'uploader' : 'upload.php' 
        }); 
    }); 
    

    그렇지 않은 이유 어떤 생각 Chrome에서 작동합니까? 크롬에서는 파일을 "앨범"으로 이동하고 IE에서는 파일을 앨범/사용자 ID로 이동합니다.

    +0

    Chrome에이 서버 측 코드가 표시되지 않습니다. 이 PHP 스크립트를 요청하는 html/javascript를 게시 할 수 있습니까? 그리고 어떻게'$ _SESSION [ 'uid']'에 uid를 설정합니까? – Arvin

    +0

    첫 번째 게시물을 업데이트했습니다. $ _SESSION [ 'uid']은 로그인 할 때 설정됩니다. 간단한 $ _SESSION [ 'uid'] = $ row [ 'id']와 $ row [ 'id']는 간단한 mysql SELECT로 선택됩니다. – Daniel

    답변

    0

    지난 주에이 문제가 있었는데이 스크립트는 새로운 스크립트이고 ajx를 통해 호출하면 새로운 세션 또는 잘못된 세션. session_id를 php ajax 요청과 함께 보내고 다른 쪽 세션을 설정하십시오.

    매개 변수를 통해 session_id를 보낼 수 있습니다.

    $(function() { 
        $('#file_upload').upload({ 
         'uploader' : 'upload.php?sid=<?php echo session_id(); ?>' 
        }); 
    }); 
    

    스크립트에 실제 세션 ID를 입력해야합니다. 스크립트에서 자바 스크립트 변수를 설정하고 자바 스크립트에서이 변수를 두 번째로 사용할 수 있습니다. 당신의 PHP 스크립트의

    :

    session_id($_GET['sid']); 
    

    다음 동일한 세션을 사용하여 자사의 SHURE. 나는 그 일을 희망한다.

    +0

    감사합니다. 나는 직장에서 돌아올 때 그것을 시도해 볼 것입니다. :) – Daniel

    +0

    ok :) 행운을 빌어 요. – Stony

    관련 문제