4

ftpでファイルをアップロードしようとしています。

ここに私のコードがあります

    $jname= "Accounts of Biotechnology Research";
    if (!is_dir('/Trade/upload/ '.$jname)) {

        mkdir('/Trade/upload/ '.$jname);   // line 63
    }
    move_uploaded_file($_FILES["submission_file"]["tmp_name"],    "/Trade/upload/$jname/" . $dup_name );    // line 67

Trade は public_html フォルダー内のフォルダーです。

ファイルをアップロードすると、次のような警告が表示されます。

Warning: mkdir() [function.mkdir]: No such file or directory in /home/my_username/public_html/Trade/upload.php on line 63

Warning: move_uploaded_file(/Trade/upload/Accounts of Biotechnology Research/76164762-sm.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/my_username/public_html/Trade/upload.php on line 67

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phphZXp0O' to '/Trade/upload/Accounts of Biotechnology Research/76164762-sm.pdf' in /home/my_username/public_html/Trade/upload.php on line 67 
4

2 に答える 2

4

受け取ったエラー メッセージに基づいて、注意すべき点が 2 つあります。/Tradeエラーで実際のパスが明らかであるため、マシンのルートパスではないと推測して/home/my_username/public_html/Trade/いるため、最初の調整は

$root_path = "/home/my_username/public_html/Trade/upload/";    

私が提案する2番目の調整は、スペースを含むパス名を避けることです:

$jname= "Accounts of Biotechnology Research"; //could be changed to
$jname= "Accounts_of_Biotechnology_Research"; //$jname = str_replace(" ","-",$jname)    OR
$jname= "Accounts-of-Biotechnology-Research"; //$jname = str_replace(" ","-",$jname)    

最後に、次の行のスペース文字に注意してください。最終結果に影響します。

if (!is_dir('/Trade/upload/ '.$jname)) {   //AND
    mkdir('/Trade/upload/ '.$jname);
}

upload/ '.$jname両方の文字列の間の [スペース] に注意してください。

于 2013-04-18T09:36:55.433 に答える