2014-11-04 130 views
0

我在我的本地主機上創建(文件不會在遠程服務器上發佈),一個Web應用程序,我添加了一些我需要的功能。其中之一是上傳一個wav文件,我想上傳到每個上傳的不同文件夾中。 我使用的是與普通文件夾一起使用的代碼。我編輯它添加我需要的一些選項(刪除文件名中的空白等),但是當我把「$ folderUuid」放入「move_upload_file」,文件夾被創建,但文件沒有上傳到。腳本上傳文件沒有上傳到uuid文件夾

另一個我無法理解的添加功能是隻在上傳文件時創建一個uuid文件夾,而不是每次刷新頁面。我閱讀了討論PHP File Upload Creating Directory並瞭解我必須使用$ _SESSION,但我的代碼不起作用。

這裏是PHP代碼:

if(isset($_POST['submit'])) 
{ 
$allowedExts = array("wav"); 
$fileName = $_FILES['file']['name']; 
$extension = substr($fileName, strrpos($fileName, '.') + 1); 

if(!is_dir("inputFiles/". $_SESSION["folder"] ."/")) { 
    mkdir(uniqid('inputFiles/'), 0700). $_SESSION["folder"] ."/" ; 

} 
if(in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    echo "Name: " . $_FILES["file"]["name"] . "<br />"; 
    echo "File kind: " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 

    if (file_exists("inputFiles/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " file già esistente. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], $folderUuid . str_replace(" ", "",$_FILES["file"]["name"])); 
     print "<br />"; 
     echo "Saved in: " . "inputFiles/" . $_FILES["file"]["name"]; 
     print "<br />"; 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 
    } 
} 

下面是HTML代碼:

<form method="post" enctype="multipart/form-data" > 

<label for="file"><span>Filename:</span></label> 

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

<br /> 
<input type="submit" name="submit" value="Submit" /> 

希望有人能幫助我解決的問題。 親切的問候 布魯斯

回答

0

試試這個代碼

if(isset($_POST['submit'])) 
{ 

$file_name = $_FILES['file']['name']; 
$tmp_file = $_FILES['file']['tmp_name']; 

//create directory from the file 
$temp = explode('.', $file_name); 
$dir = $temp[0]; 
$extension = strtolower($temp[1]); 
$allowedExts = array("wav"); 

if(!is_dir('inputFiles/'.$dir)){ 
    mkdir("inputFiles/$dir",0700); 
} 
if(in_array($extension, $allowedExts)) 
{ 
if ($_FILES["file"]["error"] > 0) 
{ 
echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
} 
else 
{ 
echo "Name: " . $_FILES["file"]["name"] . "<br />"; 
echo "File kind: " . $_FILES["file"]["type"] . "<br />"; 
echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 

if (file_exists("inputFiles/" . $_FILES["file"]["name"])) 
    { 
    echo $_FILES["file"]["name"] . " file già esistente. "; 
    } 
else 
    { 
    move_uploaded_file($tmp_file, "inputFiles/".$dir."/".$file_name); 
    print "<br />"; 
    echo "Saved in: " . "inputFiles/$dir/" . $_FILES["file"]["name"]; 
    print "<br />"; 
    } 
    } 
    } 
    else 
{ 
    echo "Invalid file"; 
    } 

} 
+0

不是創建一個UUID但名爲文件名的文件夾,但也無妨幫助。非常感謝。問候 – Bebbolin 2014-11-05 11:00:47