2016-09-22 63 views
0

我都面臨着文件上傳問題不能正常工作,這是我與另外在輸入欄的多個文件提及客戶名稱代碼移動文件上傳在PHP

 $titles=$_REQUEST['doc_title']; 
     $tmp_names=$_FILES['filename']['tmp_name']; 
     $requestid=$_REQUEST['Reqno']; 
     //echo $_SERVER['HTTP_HOST']; 
     //echo $_SERVER['REQUEST_URI']; die; 
     $url= 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
     $upload_dir=str_replace('/index.php','/',$url); 
     $time = time(); 
     $arraData=array(); 
     $filearray=array(); 
     foreach($_FILES['filename']['name'] as $key=>$value){ 
     $arraData[$key]['doc_title']=$titles[$key]; 
     $arraData[$key]['file_name']=$time.$value; 
     $arraData[$key]['tmp_name']=$tmp_names[$key]; 
     $arraData[$key]['req_id']=$requestid; 
     $pathAndName = $upload_dir."temp/Moredocument/" . $time.$value; 
     $move_files=move_uploaded_file($tmp_names[$key], $pathAndName); 
     } 

我有多個文件進行上傳,所以我使用的foreach 。 這是$ _FILES輸出 兩個圖像上傳

Array 
    (
     [filename] => Array 
     (
     [name] => Array 
      (
       [0] => 1472470251_example_001.pdf 
       [1] => 1472462805_example_001.pdf 
      ) 

     [type] => Array 
      (
       [0] => application/pdf 
       [1] => application/pdf 
      ) 

     [tmp_name] => Array 
      (
       [0] => /tmp/phpD3tfnC 
       [1] => /tmp/php6w0V8W 
      ) 

     [error] => Array 
      (
       [0] => 0 
       [1] => 0 
      ) 

     [size] => Array 
      (
       [0] => 53915 
       [1] => 53915 
      ) 

    ) 

    ) 

請幫助我的地方是錯誤。

+0

使用相對文件路徑而不是絕對路徑。 –

回答

0

什麼是你對當前文件的URL和你有什麼用

$arraData[$key]['doc_title']=$titles[$key]; 
$arraData[$key]['file_name']=$time.$value; 
$arraData[$key]['tmp_name']=$tmp_names[$key]; 
$arraData[$key]['req_id']=$requestid; 
$pathAndName = $upload_dir."temp/Moredocument/" . $time.$value; 
move_uploaded_file($tmp_names[$key], $pathAndName); 

辦?

+0

上傳文件你在想什麼 – phpdev

+0

爲什麼在$ arraData中存儲tmp目錄? –

2

爲了上傳文件,我們需要傳遞文件的絕對url。

在這裏,你已經使用

$url= 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
$upload_dir=str_replace('/index.php','/',$url);  

這會給你的http://網址,所以你不能移動文件。

$titles=$_REQUEST['doc_title']; 
$tmp_names=$_FILES['filename']['tmp_name']; 
$requestid=$_REQUEST['Reqno']; 

//This is the roor url you can use __DIR__ or dirname(__FILE__) 
$upload_dir= '/'; 

$time = time(); 
$arraData=array(); 
$filearray=array(); 
foreach($_FILES['filename']['name'] as $key=>$value) { 

    $arraData[$key]['doc_title']=$titles[$key]; 
    $arraData[$key]['file_name']=$time.$value; 
    $arraData[$key]['tmp_name']=$tmp_names[$key]; 
    $arraData[$key]['req_id']=$requestid; 

    //Make sure you have created this all directories 
    $pathAndName = $upload_dir."temp/Moredocument/" . $time.$value; 
    $move_files=move_uploaded_file($tmp_names[$key], $pathAndName); 
}