我已经在db中创建了一个图像表,我可以通过输入名称和图像文件来上传它们。我想要创建它以便用户可以删除它,但是它应该显示其名称和照片,而无需输入其名称。问题是用户可以输入一个不同的名称来多次上传。他只是写了一个名称并存储了图像,其他用户也可以看到该图像。在他的个人资料中
StoreImageController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Images;
use Illuminate\Support\Facades\Response;
use Image;
class StoreImageController extends Controller
{
function index()
{
$data = Images::latest()->paginate(5);
return view('store_image', compact('data'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
function insert_image(Request $request)
{
$request->validate([
'user_name' => 'required',
'user_image' => 'required|image|max:2048'
]);
$image_file = $request->user_image;
$image = Image::make($image_file);
Response::make($image->encode('jpeg'));
$form_data = array(
'user_name' => $request->user_name,
'user_image' => $image
);
Images::create($form_data);
return redirect()->back()->with('success', 'Image store in database successfully');
}
function fetch_image($image_id)
{
$image = Images::findOrFail($image_id);
$image_file = Image::make($image->user_image);
$response = Response::make($image_file->encode('jpeg'));
$response->header('Content-Type', 'image/jpeg');
return $response;
}
}
store_image.blade.php
@extends ('layouts.master')
@section('title')
Photo | Admin
@endsection
@section('content')
<div class="container">
@if($errors->any())
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
@if(session()->has('success'))
<div class="alert alert-success">
{{ session()->get('success') }}
</div>
@endif
<br />
<div class="panel panel-default">
<div class="panel-heading"><br>
<h3 class="panel-title">Profile Image</h3><hr>
</div>
<div class="panel-body">
<br />
<form method="post" action="{{ url('store_image/insert_image') }}" enctype="multipart/form-data">
@csrf
<div class="form-group">
<div class="row">
<label class="col-md-4" align="right">Enter Name</label>
<div class="col-md-8">
<input placeholder="Enter your name" type="text" name="user_name" class="form-control" />
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<label class="col-md-4" align="right">Select Profile Image</label>
<div class="col-md-8">
<input type="file" name="user_image" />
</div>
</div>
</div>
<div class="form-group" align="center">
<br />
<br />
<input type="submit" name="store_image" class="btn btn-primary" value="Save" />
</div>
</form>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">Photo</h3>
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-bordered table-striped">
<tr>
<th width="30%">Image</th>
<th width="70%">Name</th>
</tr>
@foreach($data as $row)
<tr>
<td>
<img src="store_image/fetch_image/{{ $row->id }}" class="img-thumbnail" width="75" />
</td>
<td><b>Name: </b>{{ Auth::user()->name }}</td>
</tr>
@endforeach
</table>
{!! $data->links() !!}
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
@endsection
web.php
<?php
use App\User;
use App\Department;
use App\Events\WebsocketDemoEvent;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
broadcast(new WebsocketDemoEvent('some data'));
return view('welcome');
});
Route::get('/page', function () {
return view('admin.page');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::group(['middleware' => ['auth','admin']], function () {
Route::get('/role-register','Admin\DashboardController@registered');
Route::delete('/role-delete/{id}', 'Admin\DashboardController@registerdelete');//delete user
Route::post('/save-user', 'Admin\DashboardController@store');
Route::get('/department', 'Admin\DepartmentController@index');
Route::post('/save-department', 'Admin\DepartmentController@store');
Route::get('/department-edit/{id}', 'Admin\DepartmentController@edit');//edit department
Route::put('/department-update/{id}', 'Admin\DepartmentController@update');
Route::delete('/department-delete/{id}', 'Admin\DepartmentController@delete');//delete department
Route::get('/page-users/{id}', 'Admin\DepartmentController@usersdep');//show users
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('/chats', 'ChatsController@index');//chats
Route::get('/messages', 'ChatsController@fetchMessages');//messages
Route::post('/messages', 'ChatsController@sendMessage');//messages
Route::get('/dashboard', 'Admin\DashboardController@dbcheck');//DATABASE
Route::get('/user-edit/{id}', 'HomeController@registeredit');
Route::get('/role-edit/{id}', 'Admin\DashboardController@registeredit');//edit user
Route::put('/role-register-update/{id}', 'Admin\DashboardController@registerupdate');
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('store_image', 'StoreImageController@index');
Route::post('store_image/insert_image', 'StoreImageController@insert_image');
Route::get('store_image/fetch_image/{id}', 'StoreImageController@fetch_image');
Route::get('/page',array('as'=>'jquery.treeview','uses'=>'Admin\DepartmentController@treeView'));
Route::get('/pageusers', 'Admin\DepartmentController@usersdep');
create_images_table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateImagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('images', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('user_name');
$table->binary('user_image');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('images');
}
}
create_users_table
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('lastname');
$table->string('phone');
$table->string('jobtitle');
$table->integer('department');
$table->timestamps();
$table->string('usertype')->nullable();
$table->string('email');
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
在您的[[StoreImageController.php中的function insert_image()
中
$image_file = $request->user_image;
带有$image_file = $request->file('user_image');