2016-08-16 70 views
0

我正在使用Laravel並接受輸入和文件上傳。此頁面用戶想要對訂單進行更改。最終目標是採取這種輸入並將其應用於多個訂單。將文件從請求移動或複製到多個位置

我可以重用每個訂單的輸入。但是,對於我來說,將請求中的文件複製到多個目錄會是一個好方法嗎?例如,正如在文檔中,我原來有:$request->file('photo')->move($destinationPath, $fileName);哪一個順序工作正常。但是現在我想將它應用到很多訂單中,因爲它不存在,所以我無法再從請求中移動相同的文件。

而且它看起來像UploadedFile對象沒有copy()方法。任何想法,將不勝感激。謝謝。

回答

1

不要太依賴元件。保持簡單

$request->file('photo')->move($destination_path, $file_name); 

//Add DIRECTORY_SEPARATOR between path and filename if needed 
copy($destination_path.$file_name, $new_path.$new_file_name); 
1

如果我可以提一個建議假設這些文件將保持不變(你是不是讓你的用戶通過命令來修改這些文件),我覺得很有道理存儲一個副本服務器上的文件,並使用數據庫表來確定該文件屬於哪些訂單,並在表中對其進行管理。您可能需要創建一個files表和一個file_order表,併爲它提供與您的orders表的多對多關係,但最終如果允許這些文件很大,可以爲您節省大量空間,並且在我看來,使其更易於管理。

0

在Laravel中,看看vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.php,我希望你能得到文件的所有內容,管理文件的方式。

如何副本的文件移動文件,刪除一切都在清楚地描述了一個文件。

對於副本Laravel文件,有功能:

/** 
* Copy a file to a new location. 
* 
* @param string $path 
* @param string $target 
* @return bool 
*/ 
public function copy($path, $target) 
{ 
    return copy($path, $target); 
} 

我覺得沒有什麼現在還不好說。 只是使用,

File::copy('file_name_with_full_path', 'target_directory_where_copy'); 

希望,這可能對你有所幫助。

相關問題