Мне нравится загружать несколько файлов одновременно.
Внешний интерфейс Vue / Vuetify:
<v-file-input
v-model="files"
id="files"
ref="files"
multiple
label="Bild oder Datei hinzufügen"
@change="handleFilesUpload"
>
export default {
name: "HeaderNotesModal",
data: () => ({
media: [],
files: [],
}),
methods: {
submit () {
this.$refs.form.validate()
if (this.valid) {
this.store({
payload: {
title: this.title,
body: this.body
},
context: this
}).then(() => {
if (this.errors.length === 0) {
this.title = ''
this.body = ''
this.$refs.form.resetValidation()
this.form = false
}
if( this.files.length !== 0 ){
this.addMedia({ 'media': this.formData})
}
})
}
},
handleFilesUpload(e){
var self = this;
var files = this.files;
if(files.length > 0){
for(var i = 0; i< files.length; i++){
self.formData.append("file[]", files[i], files[i].name);
}
}
},
},
mounted() {
this.fetchNotes()
}
}
export const addMedia = ({ state, commit }, { media}) => {
return axios.post(`/api/notes/${state.note.id}/media`, media, {
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
Бэкэнд Laravel:
public function store(Request $request, Note $note)
{
if($request->hasfile('file'))
{
foreach($request->file('file') as $file)
{
$name = time().'.'.$file->getClientOriginalExtension();
$file->move(storage_path('uploads'), $name);
$data[] = $name;
}
}
return 'success';
}
Когда я загрузить несколько файлов, он хранит только последний файл.
Может кто-нибудь помочь? Я пытался в течение 6 часов все возможные вещи, но я не нашел ошибку.
Я пытался изменить внешний интерфейс, а затем и внутренний.
Я пытался с formData и без.
Я пытался с несколькими именами файлов.
Все без успеха
var_dump return var_dump($request->file('file'));
<code><pre class='xdebug-var-dump' dir='ltr'>
<small>/home/vagrant/code/7aio/app/Http/Controllers/Note/NoteMediaController.php:27:</small>
<b>array</b> <i>(size=2)</i>
0 <font color='#888a85'>=></font>
<b>object</b>(<i>Illuminate\Http\UploadedFile</i>)[<i>392</i>]
<i>private</i> 'test' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>boolean</small> <font color='#75507b'>false</font>
<i>private</i> 'originalName' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'bgvqm7da.png'</font> <i>(length=12)</i>
<i>private</i> 'mimeType' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'image/png'</font> <i>(length=9)</i>
<i>private</i> 'error' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>int</small> <font color='#4e9a06'>0</font>
<i>protected</i> 'hashName' <font color='#888a85'>=></font> <font color='#3465a4'>null</font>
<i>private</i> 'pathName' <small>(SplFileInfo)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'/tmp/phpIIfLwD'</font> <i>(length=14)</i>
<i>private</i> 'fileName' <small>(SplFileInfo)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'phpIIfLwD'</font> <i>(length=9)</i>
1 <font color='#888a85'>=></font>
<b>object</b>(<i>Illuminate\Http\UploadedFile</i>)[<i>372</i>]
<i>private</i> 'test' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>boolean</small> <font color='#75507b'>false</font>
<i>private</i> 'originalName' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'Screenshot at Apr 27 07-35-08.png'</font> <i>(length=33)</i>
<i>private</i> 'mimeType' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'image/png'</font> <i>(length=9)</i>
<i>private</i> 'error' <small>(Symfony\Component\HttpFoundation\File\UploadedFile)</small> <font color='#888a85'>=></font> <small>int</small> <font color='#4e9a06'>0</font>
<i>protected</i> 'hashName' <font color='#888a85'>=></font> <font color='#3465a4'>null</font>
<i>private</i> 'pathName' <small>(SplFileInfo)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'/tmp/phpdRhiD1'</font> <i>(length=14)</i>
<i>private</i> 'fileName' <small>(SplFileInfo)</small> <font color='#888a85'>=></font> <small>string</small> <font color='#cc0000'>'phpdRhiD1'</font> <i>(length=9)</i>