CannerCMS / cannercms

⚡️ Content Management Framework creates custom CMS fast and easy. Support data sources such as Firebase/Firestore, GraphQL and Restful APIs.
https://www.cannerdata.com
Apache License 2.0
2.42k stars 145 forks source link

Random string as a filename to allow uploading the same image name #147

Open AlexGach opened 5 years ago

AlexGach commented 5 years ago

Hi, If a user uploads a second image named as a previously uploaded image, first image disappear and generates 404 error. For example uploading "default.png" in several articles.

To solve this we are using shorId library to generate a random value (like ECOMMERCE>ORDERS).

                  <image keyName="backimage" title="Upload your image" 
                        uiParams={{
                          filename: shortId.generate()
                        }}
                      />

The problem is that shortId.generate() returns always the same value. How can we use shortID for uiParams filename correctly? Thanks!

abz53378 commented 5 years ago

Hi, thanks for your report, currently the filename only support fixed string. So what if we support the function in filename property, like this:

<image keyName="backimage" title="Upload your image" 
  uiParams={{
    filename: (file) => {
       // you also can get the origin file from argument
       return `${file.name}${shortId.generate()}`
    }
  }}
/>
AlexGach commented 5 years ago

Hi @abz53378, that would be great 👍