gpt4 book ai didi

javascript - Laravel 无法上传图片

转载 作者:行者123 更新时间:2023-12-03 04:04:42 24 4
gpt4 key购买 nike

我有一个 HTML 来上传多个图像。

我尝试调试,它为我上传的所有图像返回代码 200。

我的代码可能太多了,几乎都是拖拽图片排序的功能。但我仍然保留所有代码。

我不知道我的错误从哪里开始?

它还会运行到 success: function 并显示 toast 消息:Sweet Success

但它在控制台日志中显示错误,例如:GET http://localhost:8000/storage/apartments/JnJfDtTx2ix3W7z8J6PDCD4JskK0WZBWLrkSnUHW.jpeg 404(未找到)

以下是执行此操作的所有代码:

<form role="form" action="" method="POST" enctype="multipart/form-data">
<!-- Images Tab -->
<div role="tabpanel" class="tab-pane" id="images">
<button class="btn btn-primary" type="button" id="upload"><i class="voyager-upload"></i>
Upload image
</button>
<div id="uploadPreview" style="display:none;"></div>

<div id="uploadProgress" class="progress active progress-striped" style="display:none;">
<div class="progress-bar progress-bar-success" style="width: 0%"></div>
</div>
<div class="apartment-images">
<div class="row" id="sort-image">
<div class="col-xs-6 col-md-3 col-lg-2 draggable" v-for="(index, path) in files">
<div class="apartment-image">
<img :src="path" class="img-responsive">
<input type="hidden" name="images[]" :value="path">
<div class="row">
<div class="col-xs-6"><span v-if="index == 0">Main image</span></div>
<div class="col-xs-6 text-right"><button type="button" v-on:click="remove(index)" class="btn btn-default"><i class="voyager-trash"></i> Delete</button></div>
</div>
</div>
</div>
</div>
</div>

</div>

<!-- CSRF TOKEN -->
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<br>
<div class="panel-footer">
<button type="submit" class="btn btn-success">Save Data</button>
</div>
</form>

<iframe id="form_target" name="form_target" style="display:none"></iframe>
<form id="my_form" action="{{ route('voyager.upload') }}" target="form_target" method="post"
enctype="multipart/form-data" style="width:0px;height:0;overflow:hidden">
<input name="image" id="upload_file" type="file" onchange="$('#my_form').submit();this.value='';">
<input type="hidden" name="type_slug" id="type_slug" value="{{ $dataType->slug }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

和 Javascript 代码:

@section('javascript')
<script>
$('document').ready(function () {
var apartment_images = [];

@if(isset($apartment->slider_images))
apartment_images = <?php echo json_encode(old('slider_images', $apartment->slider_images)) ?>;
@elseif(old('slider_images'))
apartment_images = <?php echo json_encode(old('slider_images')); ?>;
@endif

var manager = new Vue({
el: '.apartment-images',
data: {
files: apartment_images
},
ready: function() {
var vm = this;
var list = document.getElementById("sort-image");
Sortable.create(list, {
draggable: '.draggable',
onUpdate: function(evt) {
vm.reorder(evt.oldIndex, evt.newIndex);
}
});
},
methods: {
reorder(oldIndex, newIndex) {
// move the item in the underlying array
this.files.splice(newIndex, 0, this.files.splice(oldIndex, 1)[0]);
},
remove: function(index) {
this.files.splice(index, 1);
}
}
});

CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
//var imageWidth = 762, imageHeight = 1100;
$("#upload").dropzone({
url: "{{ route('voyager.media.upload') }}",
previewsContainer: "#uploadPreview",
totaluploadprogress: function (uploadProgress, totalBytes, totalBytesSent) {
$('#uploadProgress .progress-bar').css('width', uploadProgress + '%');
if (uploadProgress == 100) {
$('#uploadProgress').delay(1500).slideUp(function () {
$('#uploadProgress .progress-bar').css('width', '0%');
});
}
},
acceptedFiles: ".jpeg,.jpg,.png,.gif",
processing: function () {
$('#uploadProgress').fadeIn();
},
sending: function (file, xhr, formData) {
formData.append("_token", CSRF_TOKEN);
formData.append("upload_path", 'public/apartments');
console.log(file);
},
success: function (e, res) {
if (res.success) {
manager.files.push('/storage/' + res.path);
toastr.success(res.message, "Sweet Success!");
} else {
toastr.error(res.message, "Whoopsie!");
}
},
error: function (e, res, xhr) {
toastr.error(res, "Whoopsie");
},
queuecomplete: function () {
//getFiles(manager.folders);
}
});
});
</script>
@stop

最佳答案

您使用的网址似乎不正确。您不应该直接访问存储。您的文件最终位于 projects/apartments 下,因此您可以将 URL 更改为:

http://localhost:8000/apartments/JnJfDtTx2ix3W7z8J6PDCD4JskK0WZBWLrkSnUHW.jpeg

关于javascript - Laravel 无法上传图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44609394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com