Skip to content

Commit e5a35dc

Browse files
committed
attachments can be send in chat
1 parent e9d9e87 commit e5a35dc

File tree

4 files changed

+71
-2
lines changed

4 files changed

+71
-2
lines changed

app/Http/Controllers/KchatController.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,17 @@ function attachments(Request $request){
180180

181181
foreach($tmp['files'] as $file){
182182
$tmp = [];
183+
183184
$tmp['Name'] = $file->getClientOriginalName();
184185
$tmp['uuid'] = Str::uuid()->toString();
185186
$file->move($uploadpath, $tmp['uuid']);
186187
$tmp['MimeType'] = explode('/',$file->getClientMimeType());
187188
$json[] = $tmp;
189+
190+
$tmp['MimeType'] = $file->getClientMimeType();
191+
$tmp['conversation_id'] = $request->chat;
192+
193+
DB::table('files')->insert($tmp);
188194
}
189195

190196
$id = DB::table('messages')->insertGetId([
@@ -199,4 +205,30 @@ function attachments(Request $request){
199205

200206
return true;
201207
}
208+
209+
function downattch(Request $request){
210+
211+
$file = DB::table('files')->where('uuid', $request->uuid)->get();
212+
213+
$file = $file[0];
214+
215+
// Checking if user is part of conversation
216+
$tmp = DB::table('participants')->where(['conversation_id' => $file->conversation_id, 'user_id' => Auth()->user()->id])->get()->toArray();
217+
218+
if(!count($tmp)){
219+
return false;
220+
}
221+
222+
$tmp = DB::table('settings')->where(['key' => 'uploadpath'])->get();
223+
224+
$uploadpath = $tmp[0]->value;
225+
226+
$pathToFile = $uploadpath.'/'.$file->uuid;
227+
228+
$headers = [
229+
'Content-Type' => $file->MimeType,
230+
];
231+
232+
return response()->file($pathToFile, $headers);
233+
}
202234
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
use Illuminate\Database\Migrations\Migration;
4+
use Illuminate\Database\Schema\Blueprint;
5+
use Illuminate\Support\Facades\Schema;
6+
7+
return new class extends Migration
8+
{
9+
/**
10+
* Run the migrations.
11+
*
12+
* @return void
13+
*/
14+
public function up()
15+
{
16+
Schema::create('files', function (Blueprint $table) {
17+
$table->id();
18+
$table->integer('conversation_id')->unsigned();
19+
$table->string('Name');
20+
$table->string('uuid');
21+
$table->string('MimeType');
22+
$table->index('uuid');
23+
});
24+
}
25+
26+
/**
27+
* Reverse the migrations.
28+
*
29+
* @return void
30+
*/
31+
public function down()
32+
{
33+
Schema::dropIfExists('files');
34+
}
35+
};

public/js/kchat.msg.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ $(document).ready (function(){
178178
element.message = '<ul class="file-ul">';
179179

180180
for(i = 0 ; i < files.length ; i++){
181-
element.message += "<li class=\"file\"><a href=\"/messages/downattch/"+files[i].uuid+"\"><!--img class=\"file-icon\" src=\"file.png\" alt=\"icon\"--><i class=\"fa fa-file fa-2\" aria-hidden=\"true\"></i>&nbsp;&nbsp;"+files[i].Name+"</a></li>";
181+
element.message += "<li class=\"file\"><a href=\"/messages/downattch/"+files[i].uuid+"\" target=\"_blank\"><!--img class=\"file-icon\" src=\"file.png\" alt=\"icon\"--><i class=\"fa fa-file fa-2\" aria-hidden=\"true\"></i>&nbsp;&nbsp;"+files[i].Name+"</a></li>";
182182
}
183183

184184
element.message += '<ul>';
@@ -222,7 +222,7 @@ $(document).ready (function(){
222222
element.message = '<ul class="file-ul">';
223223

224224
for(i = 0 ; i < files.length ; i++){
225-
element.message += "<li class=\"file\"><a href=\"/messages/downattch/"+files[i].uuid+"\"><!--img class=\"file-icon\" src=\"file.png\" alt=\"icon\"--><i class=\"fa fa-file fa-2\" aria-hidden=\"true\"></i>&nbsp;&nbsp;"+files[i].Name+"</a></li>";
225+
element.message += "<li class=\"file\"><a href=\"/messages/downattch/"+files[i].uuid+"\" target=\"_blank\"><!--img class=\"file-icon\" src=\"file.png\" alt=\"icon\"--><i class=\"fa fa-file fa-2\" aria-hidden=\"true\"></i>&nbsp;&nbsp;"+files[i].Name+"</a></li>";
226226
}
227227

228228
element.message += '<ul>';

routes/web.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
Route::get('/profile', [UserController::class, 'profile'])->name('Profile');
5151

5252
Route::get('/messages', [MessageController::class, 'messages'])->name('Messages Controller');
53+
54+
Route::get('/messages/downattch/{uuid}', [KchatController::class, 'downattch'])->name('Attachments Download')->where('uuid', '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}')->withoutMiddleware('GetCounts');
5355

5456
});
5557

0 commit comments

Comments
 (0)