当前位置: 首页 > 知识库问答 >
问题:

从Angular 9到Laravel的文件上传不工作

湛财
2023-03-14
<form [formGroup]="mediaFormGroup" (ngSubmit)="uploadMedia()">
<label>Image:</label>
<input  type="file" name="media_file" (change)="onFileChange($event)" />
<button type="submit" [disabled]="mediaStatus">Upload</button> 
</form>
onFileChange(event) {
if (event.target.files.length > 0) {
this.file = event.target.files[0];
this.thumbFileName = <File>event.target.files[0].name;
var reader = new FileReader();  
reader.onload = (event: any) => {  
      this.thumbUrl = event.target.result;  
}  
reader.readAsDataURL(this.file);  
}
}

uploadMedia(){
const formData = new FormData();
const headers = new HttpHeaders();
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
formData.append('thumbimage', this.file);
this.http.post(`${this.API_URL}/user/uploadImage`, formData, {
      headers: headers
      }).subscribe(data => {
          return data;
      });
}
Route::post('user/uploadImage', "User\UserController@uploadImage");
public static function uploadImage(Request $request){
       //return $request;  // null
 if ($request->hasFile('thumbimage'))
 {
       $file      = $request->file('thumbimage');
       $filename  = $file->getClientOriginalName();
       $extension = $file->getClientOriginalExtension();
       $picture   = date('His').'-'.$filename;
       $file->move(public_path('tImg'), $picture);
       return response()->json(["message" => "Image Uploaded Succesfully"]);
  }else{
       return response()->json(["message" => "Select image first."]); // returns this
  }
}

我的代码有什么问题?我想有人能帮我。

共有1个答案

程天佑
2023-03-14

我也有这个问题。最后我使用了PHP文件数组。

$_FILES['filename']['tmp_name']

导入此类:

use Illuminate\Http\UploadedFile;

然后创建一个新的上传文件;

$name = $_FILES['filename']['name'];
$tempPath = $_FILES['filename']['tmp_name']
$file = new UploadedFile(
    $tempPath,
    $name,
);

// do other stuff
$original_name = $file->getClientOriginalName();
$ext = strtolower($file->getClientOriginalExtension());
$size = $file->getSize();
$type = $file->getMimeType();

$hashName = $file->hashName();
 
// $_FILES['filename']['name'] 'An associative array of items uploaded to the 
// current script via the HTTP POST method'
$files = $_FILES['filesarray']
for ($i = 0; $i < count($files['name']); $i++) {
    $name = $files['name'][$i];
    $file = new UploadedFile(
        $files['tmp_name'][$i],
        $name  
    );
    // Do stuff with file
};
 类似资料:
  • 我正在开发一个带有文件上传的web应用程序。 我只是写了一个PHP代码来上传一个图像。 当我运行此代码时,我可以在文件上传时获得输出,如果上传错误 我给了777权限来访问pic文件夹 有什么问题,有什么想法吗,, 类型 Print_R 数组 谢啦

  • 当我试图将一个文件从Angular 5.2上传到Laravel5.5应用程序时,我遇到了一个奇怪的行为。文件数据在服务器端不可见/不可访问。 我试过不同的头和方法,但似乎都失败了- HTML: 浏览器的开发人员工具显示提交了以下有效负载: 更新控制器代码真的超级简单 当我用一个对象替换formData时: null

  • 我想做一个表单上传一个文件,一个excel文件,这是我的html 还有php 但我一直在 我试过用$file-

  • 我的视图中有一个用于上传图像的输入字段: 我已经在我的公共文件夹中创建了文件夹上传,在我的控制器中,我试图上传这样的文件: 当我提交表单并上传图片时,没有任何东西被上传到文件夹上传,我得到了错误: SQLSTATE[HY000]:一般错误:1364字段“image”没有默认值

  • 因此,我试图在Laravel框架内与旧的文件上传做斗争,但有点迷失了方向。我已经设法让上传工作,所以文件上传并保存到一个随机字符串名的资产文件夹。 这是表格: 这是路线: 这是AccountController内部的方法: 我现在试图启用,以推动字符串名称到数据库,也与上传它的用户相关联,并显示为他们的个人资料图像?Ay指针会很棒! 我在数据库中创建了一行名为文件的文本类型......我不确定在这

  • 我无法上传新泽西州的文件。使用泽西1.9。InputStream到达服务时为空。我尝试过将其作为普通表单提交和使用jQuery表单插件的AJAX提交,但结果都是一样的。也没有记录任何异常,这让它更加令人沮丧。 HTML表单 聚甲醛 Eclipse中的依赖层次结构显示mimepull.jar1.6也被引入。 剩下的服务 如果我添加@FormDataParam(“fileupload_name”)Fo