[英]Angular PHP Send name with file
Im following some tutorial to upload file on server by php api. 我正在遵循一些教程,通过php api在服务器上传文件。 I need to send some data with file.
我需要用文件发送一些数据。 Like with file i want to send a name.
喜欢文件我想发送一个名字。 So it will generate folder by that name and save file in that folder.
因此它将按该名称生成文件夹并将文件保存在该文件夹中。
home.ts home.ts
onFileSelect(event) {
if (event.target.files.length > 0) {
const file = event.target.files[0];
this.form.get('avatar').setValue(file);
}
}
onSubmit() {
console.log(this.backUrl);
name = this.backUrl;
console.log(name);
const formData = new FormData();
formData.append('avatar', this.form.get('avatar').value);
this.uploadService.uploadFile(formData).subscribe(
(res) => {
this.uploadResponse = res;
console.log(res);
},
(err) => {
console.log(err);
}
);
}
service.ts service.ts
public uploadFile(data,) {
let uploadURL = 'http://api.igiinsurance.com.pk:8888/file_upload/upload.php';
return this.httpClient.post<any>(uploadURL, data);
}
upload.php upload.php的
<?php
header('Content-Type: application/json; charset=utf-8');
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST");
$response = array();
$upload_dir = 'uploads';
$server_url = 'http://api.igiinsurance.com.pk:8888';
if($_FILES['avatar'])
{
$avatar_name = $_FILES["avatar"]["name"];
$avatar_tmp_name = $_FILES["avatar"]["tmp_name"];
$error = $_FILES["avatar"]["error"];
if($error > 0){
$response = array(
"status" => "error",
"error" => true,
"message" => "Error uploading the file!"
);
}else
{
$random_name = rand(1000,1000000)."-".$avatar_name;
$upload_name = $upload_dir.strtolower($random_name);
$upload_name = preg_replace('/\s+/', '-', $upload_name);
if(move_uploaded_file($avatar_tmp_name , $upload_name)) {
mkdir("upload/testing3");
$response = array(
"status" => "success",
"error" => false,
"message" => "File uploaded successfully",
"url" => $server_url."/".$upload_name
);
}else
{
$response = array(
"status" => "error",
"error" => true,
"message" => "Error uploading the file!"
);
}
}
}else{
$response = array(
"status" => "error",
"error" => true,
"message" => "No file was sent!"
);
}
echo json_encode($response);
?>
I want to send name with file. 我想用文件发送名字。 And in php that name will be the folder of that file.
在php中,该名称将是该文件的文件夹。 Example All files are now saving in ""uploads"" folder.
示例现在所有文件都保存在“”uploads“”文件夹中。 I need file save in upload>name>file-here.
我需要在upload> name> file-here中保存文件。 Any one can help in code so please
任何人都可以帮助代码,所以请
handleInputChange(event: any) { const image = event.target.files[0]; handleInputChange(event:any){const image = event.target.files [0];
const reader = new FileReader();
if (!image.type.match(/image-*/)) {
this.Toastr.error('Image are not valid.', 'Failed!');
return;
} else {
this.photo = image;
reader.onload = (event1: ProgressEvent) => {
this.url = (<FileReader>event1.target).result;
};
reader.readAsDataURL(event.target.files[0]);
this.selectedFile = event.target.files[0];
this.validateImage = false;
}
} this.ServiceName.saveNewsData("api_url", this.selectedFile).subscribe((response: any) => { if (response.status == true) {}}) } this.ServiceName.saveNewsData(“api_url”,this.selectedFile).subscribe((response:any)=> {if(response.status == true){}})
saveNewsData(url, photo) { saveNewsData(url,photo){
const data = new FormData();
data.append('featuredImage', photo);
return this.http.post(url, data,{ headers: header })
.map(response => response)
.catch(this.handleError);
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.