【问题标题】:Laravel Getting Filename from javascript/ajax FormDataLaravel 从 javascript/ajax FormData 获取文件名
【发布时间】:2019-01-14 00:06:48
【问题描述】:

我正在尝试从上传到我的服务器的 FormData 对象中获取原始文件名,但我终生无法弄清楚如何访问它。

我的 js/ajax 是这样的:

function AjaxFileUpload(files, progressBar, target, id, imageContainer){

//Creates a formdata object for the upload, appends a CSRF token, the file itself and its respective name
var formData = new FormData;
formData.append('_token', CSRF_TOKEN);
formData.append('target', target);
formData.append('id', id)
for(var i = 0; i < files.length; i++){
  formData.append(files[i].name, files[i]);
}

$.ajax({
  url: '/upload',
  type: 'POST',
  data: formData,
  cache: false,
  contentType: false,
  processData: false,

它在服务器端使用我的上传控制器进行处理,如下所示:

public function upload(Request $request){

    $arr = [];
    foreach($request->all() as $file){
      if(is_file($file)){

        //$file_type = mime_content_type($file);

        $size = filesize($file);
        $ext = $file->guessExtension();
        //Do some stuff

代码运行良好,但我不知道如何在 PHP 端获取文件名。

【问题讨论】:

  • 您是否允许动态字段名称或其他内容?您应该使用 $request->file() 来获取文件对象。

标签: php jquery ajax laravel upload


【解决方案1】:

如果 $file->guessExtension();工作正常,那么您应该能够通过以下方式获取文件名: $file->getClientOriginalName();这在 UploadedFile 类的Symfony documentationOther File Methods methods 链接中记录

【讨论】:

  • 漂亮!抱歉回复晚了,我马上试试
猜你喜欢
  • 2012-02-22
  • 2015-09-23
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 2014-08-06
  • 1970-01-01
  • 2013-01-30
  • 2020-04-04
相关资源
最近更新 更多