Php 图像未从angular上传到Laravel
我创建了一个表单,用于保存带有图像的项目详细信息。我使用的是Laravel5.1和angularJS。项目信息将成功保存,但图像未上载到服务器,图像细节也未保存在数据库中。我需要帮助使用angularjs将图像上载到laravel 这是我的HTML代码:Php 图像未从angular上传到Laravel,php,angularjs,laravel-5.1,Php,Angularjs,Laravel 5.1,我创建了一个表单,用于保存带有图像的项目详细信息。我使用的是Laravel5.1和angularJS。项目信息将成功保存,但图像未上载到服务器,图像细节也未保存在数据库中。我需要帮助使用angularjs将图像上载到laravel 这是我的HTML代码: <div ng-controller="itemController"> <form ng-submit="addItem()"> <label>Name:</label><
<div ng-controller="itemController">
<form ng-submit="addItem()">
<label>Name:</label><input type="text" name="name" value="" ng-model="newitem.name" placeholder="Item Name">
<label>Model No:</label><input type="text" name="model" value="" ng-model="newitem.model" placeholder="Model Number">
<label>Size:</label><input type="text" name="size" value="" ng-model="newitem.size" placeholder="Item Size">
<label>Colour:</label><input type="text" name="color" value="" ng-model="newitem.color" placeholder="Item Colour">
<br>
<label>Description:</label><textarea cols="30" rows="5" ng-model="newitem.description" placeholder="Description"></textarea>
<br>
<label>Photo:</label><input type="file" accept="imag/works" ngf-select="" ngf-multiple="true" class="form-control" id="img" name="img" placeholder="Image" ng-model="newitem.photo" multiple>
<br>
<button type="submit">Save</button>
</form>
<div ng-show="sendmessage">
Item Saved Successfully...........
</div>
<div>
下面给出了ItemController.php
<?php
namespace App\Http\Controllers\Auth;
use App\File;
use App\Item;
use Illuminate\Http\Request as Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use Validator;
use Input;
class ItemController extends Controller
{
/**
* Validates given data for account
* @param array $data
* @return Validator
*/
protected function validator(array $data)
{
// Loan account is not validated
return Validator::make($data,[
'name' => 'required',
'size' => 'required|max:255'
]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = $this->validator($request->all());
if($validator->fails()){
return Response::json( $validator->errors()
,400);
}
$item=new Item($request->all());
if($item->save())
{
$id=$item->id;
if ($request->hasFile('photo')) {
$file = $request->file('photo');
$image=new File();
$image->name = $this->uploadImage($file);
$image->file_id=$id;
$image->save();
}
}
return Response::json(['error' => 'Server is down']
,500);
}
/**
* To Strore Images
*
*
*/
public function uploadImage($file){
$storedFileName="";
if(!empty($file)){
$extension=$file->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$extension;
$storedFileName=base_path().'/img/works/'. $fileName;
$file->move(
base_path().'/img/works/', $fileName
);
}
return $storedFileName;
}
}
要通过AngularJS上传图像,您需要做一些额外的工作。您可以使用类似的库(或其他库),也可以自己使用。供进一步参考
<?php
namespace App\Http\Controllers\Auth;
use App\File;
use App\Item;
use Illuminate\Http\Request as Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Response;
use Validator;
use Input;
class ItemController extends Controller
{
/**
* Validates given data for account
* @param array $data
* @return Validator
*/
protected function validator(array $data)
{
// Loan account is not validated
return Validator::make($data,[
'name' => 'required',
'size' => 'required|max:255'
]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$validator = $this->validator($request->all());
if($validator->fails()){
return Response::json( $validator->errors()
,400);
}
$item=new Item($request->all());
if($item->save())
{
$id=$item->id;
if ($request->hasFile('photo')) {
$file = $request->file('photo');
$image=new File();
$image->name = $this->uploadImage($file);
$image->file_id=$id;
$image->save();
}
}
return Response::json(['error' => 'Server is down']
,500);
}
/**
* To Strore Images
*
*
*/
public function uploadImage($file){
$storedFileName="";
if(!empty($file)){
$extension=$file->getClientOriginalExtension();
$fileName = rand(11111,99999).'.'.$extension;
$storedFileName=base_path().'/img/works/'. $fileName;
$file->move(
base_path().'/img/works/', $fileName
);
}
return $storedFileName;
}
}