无法从Django上传多张图片

时间:2020-06-28 19:21:11

标签: javascript python django reactjs django-file-upload

很抱歉问这个问题,因为在Django中可能有很多关于多个文件上传的教程。但他们都没有澄清我的疑虑。我是Django的新手,请耐心等待我。

以下是我的django代码:

models.py

class Upload(models.Model):
    file = models.FileField(upload_to='images/', default=False)

urls.py

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('my_app.urls')),
]

urls.py

urlpatterns = [
    path('image', UploadViewSet, name='image'),
 ]

views.py

class UploadViewSet(viewsets.ModelViewSet):
    queryset = Upload.objects.all()
    permission_classes = [
        permissions.AllowAny
    ]
    serializer_class = UploadSerializer

反应

class Design extends Component {
state = {
    file: null
}
handleFile(e) {
    let file = e.target.files[0]
    this.setState({ file: file })
}
handleUpload() {

    let file = this.state.file
    let formdata = new FormData()
    formdata.append('images', file)
    console.log('this one:', file)
    axios({
        url: "http://127.0.0.1:8000/image/",
        method: "POST",
        data: formdata,
    }
    ).then(res => console.log(res))
}

render() {
    return (
        <div class="upload">
            <h1>Upload Images</h1>
            <br />
            <br />

            <Link to="/">
                <button class="btn btn-warning">Back</button>
            </Link>

            <br />
            <br />
            <br />
            <div className="d-flex p-4 z-depth-2">
                <input type="file" multiple name="file" onChange={(e) => this.handleFile(e)} />
            </div>
            <br />
            <br />
            <br />
            <button onClick={(e) => this.handleUpload(e)} class="btn btn-red">Upload</button>
        </div>
    );
}
}
export default Design;  # <------sorry can't put this inside.

通过react将图像成功存储在django的images文件夹中。但是当我从react上传多个文件时,django只收到一张图像。

请帮助我提供一些好的解决方案。 任何解决方案都是有意义的。预先谢谢你。

0 个答案:

没有答案