it is my javascript code :
var input = document.getElementById('fileUpload').files[0].name;
var file = doc.output('blob');
var formData = new FormData();
formData.append('file', file);
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
});
$.ajax({
method: 'POST',
url:'/saveEditorFiles',
data: {formData,name:input},
processData: false,
contentType: false,
success: function(data){console.log(data)},
error: function(data){console.log(data)}
});
and its controller :
public function storeEditorFiles(Request $request)
{
$validatedData = $request->validate([
'file' => 'required|mimes:pdf',
]);
$file = $request->name('file');
$name = $file->getClientOriginalName();
$uniqueName = bin2hex(random_bytes(3)) . '.' .'pdf';
$file->move(public_path('TempFiles/'), $uniqueName);
$save = new TempFile;
$save->filename = $name;
$save->user_id = Auth::user()->id;
$save->UniqueFileName = $uniqueName;
$save->save();
$response = [
'name' => $name,
'file' => $file,
];
return Response::json(['success' => $response]);
}
the problem is that the file is saving in my database with the name "blob". I am trying to save it with its original name. Any help would be appreciated.
I found a solution append child and in second parameter pass the targeted var name:
var realName= document.getElementById('fileUpload').files[0].name;
var formData = new FormData();
formData.append('file', file);
**formData.append('name','realName');** // realName is targeted file name
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}
});
$.ajax({
method: 'POST',
url:'/saveEditorFiles',
data: {formData,name:input},
processData: false,
contentType: false,
success: function(data){console.log(data)},
error: function(data){console.log(data)}
});
And in the controller :
public function storeEditorFiles(Request $request)
{
$validatedData = $request->validate([
'file' => 'required|mimes:pdf',
]);
$file = $request->name('file');
$file = $request->name('realName');
$name = $file->getClientOriginalName();
$uniqueName = bin2hex(random_bytes(3)) . '.'
.'pdf';
$file->move(public_path('TempFiles/'),
$uniqueName);
$save = new TempFile;
$save->filename = $name;
$save->user_id = Auth::user()->id;
$save->UniqueFileName = $uniqueName;
$save->save();
$response = [
'name' => $name,
'file' => $file,
];
return Response::json(['success' => $response]);
}