johndatserakis / file-upload-with-preview

🖼 Simple file-upload utility that shows a preview of the uploaded image. Written in TypeScript. No dependencies. Works well with or without a framework.

Home Page:https://johndatserakis.github.io/file-upload-with-preview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Only saving last image of multiple uploads

inelion opened this issue · comments

If multiple images are uploaded one at a time only the last image you upload will show up in Request.Files.

Upload a three images by selecting them individually. You will see the previews in the preview window.

When you check Request.Files it will only have the last image you uploaded not the previous two.

Hi there. I just checked and when I add images, I do see the images added to the cachedFileArray, so it seems like everything is working there.

Because file-upload-with-preview is simply a way to "gather" the images that are ready to be sent, however you do that will be up to the backend you choose to use.

Updating this enctype is not a feature supported by file-upload-with-preview. You can do basically the same thing though by formatted your data before upload.

In a previous comment I shared two ways to do that - one with jQuery's ajax method, and one using axios. You can also tweak it to whatever you use before you send up the data. In this way, you should be able to upload all the files.

Ahh yes I'm sorry, you're right. Because you're in control of that HTML code, sure, you're solution would be just fine. I would hesitate to add it to the actual example code because not everyone is using the same backend, but I'm glad you made an issue because now others can find the solution of they're using the same tech. Thank you.

I was wrong when I reported that I fixed this issue with enctype="multipart/form-data" :/

This works correctly IF you select ALL of the images at the same time but not if you select multiple images one at a time. So, for example, if you select three images at the same time using the Ctrl key, then it will place all of the images in Request.Files but if you select one by one it will only put the last image in Request.Files.

Is this working correctly for you?

Yea this is working correctly - really this is going to depend on your backend. Make sure you're sending the cachedFileArray to your backend. My comment here has more info on how I would go about it, but again, this is more of a backend thing. This component simply collects the images from the user selection - the part you're talking about is on the backend and is not really part of this, from how I understand your question.

i am having the same problem. but i am not using some ajax method to submit my uploads, in this case, what should i do, thanks for your help

Yup so really this is backend specific - all you need to do is send the upload.cachedFileArray to your backend - whatever method that is will change based on what backend you're using.

A FormData approach is a common method, perhaps that way will work for you.