2017-01-24 3 views
3

最近私のコードをlaravelに移行しました。私はlaravelでpluploadを使用してファイルのアップロードに問題を抱えていました。アップロードされたファイルは、フォームが送信される前にサーバーにアップロードされます。ファイルが正常にアップロードされた後、隠された入力フィールドにファイルパスが入れられます。 アップロードコードを以下に示します。Laravel 5.3写真がpluploadディレクトリ関連の問題でアップロードされる

public function photo(){ 
    $target_file = ""; 
    $this->target_dir = base_path() ."/uploads/"; 
    if($_FILES['file']['name']){ 
    $filename = AppUtils::get_new_filename($this->ext); 
    $filename = "photo_" . $filename; 
    $target_file = $this->target_dir . $filename; 
    move_uploaded_file($_FILES['file']['tmp_name'],$target_file); 
    $photo = $this->target_dir . $filename; 
    echo $photo; 
    die(); 
    } 
    else{ 
    AppUtils::fail(); 
    } 
} 

$ target_dirにbase_path()を使用しないと、ファイルが正しくアップロードされません。しかし、base_path()プレビューイメージを使用して実際の場所ではありません。 は、例えば、フォト出力は/var/www/htm/lar/uploads/xyz.jpg
しかし、プレビュー画像のパスになりますアップロードした後を示しています。http://example.com/lar/var/www/html/lar/uploads/xyz.jpg

答えて

1

はこれを試してみてください:

public function photo(){ 
    $target_file = ""; 
    $this->target_dir = "/uploads/"; 
    if($_FILES['file']['name']){ 
    $filename = AppUtils::get_new_filename($this->ext); 
    $filename = "photo_" . $filename; 
    $target_file = base_path() . $this->target_dir . $filename; 
    move_uploaded_file($_FILES['file']['tmp_name'],$target_file); 
    $photo = $this->target_dir . $filename; 
    echo $photo; 
    die(); 
    } 
    else{ 
    AppUtils::fail(); 
    } 
} 

base_path()のみアップロード先のために使用すべきです。

関連する問題