23 Replies Latest reply on Mar 30, 2017 10:19 AM by ZNB

    CFimage resize

    ZNB Level 1

      Bonjour,

       

      Quand je veux redimensionner une image (.jpg), j'ai le message suivant :

      The  ServerFile image format is not supported on this operating system

      mais quand je n'utilise pas cette fonction, le serveur accepte !

      <cfimage action="resize" source="File.ServerFile" height="300" width="200" name="resized">

      Merci d'avance pour votre aide

        • 1. Re: CFimage resize
          haxtbh Level 4

          Which version of Coldfusion are you using and what hotfix version is it?

           

          Can you give the full code you are using that gives you the error as well.

          • 2. Re: CFimage resize
            WolfShade Level 4

            Bonjour,

             

            According to the docs for CFIMAGE, you can use a variable to contain the image to be resized.  As haxtbh has pointed out, we really cannot understand what is wrong without seeing your code.  But if the image is being uploaded from a form, you need to use CFFILE to save it in a variable, then use CFIMAGE to resize the image.

             

            Selon les documents pour CFIMAGE, vous pouvez utiliser une variable pour contenir l'image à redimensionner. Comme haxtbh l'a souligné, nous ne pouvons vraiment pas comprendre ce qui ne va pas sans voir votre code. Mais si l'image est téléchargée à partir d'un formulaire, vous devez utiliser CFFILE pour l'enregistrer dans une variable, puis utiliser CFIMAGE pour redimensionner l'image.

             

            HTH,

             

            ^_^

            • 3. Re: CFimage resize
              ZNB Level 1

              Avant tout merci pour vos réponses !

              Voici mon code :

              1ère partie avec un cfform :

              <INPUT type="file" name="PhotoFile" size="55" accept="image/jpg, image/jpeg, image/gif">

               

              2ème partie :

              <CFFILE

                  Action="UPLOAD"

                  Filefield="PhotoFile"

                  Destination="#StrPath##session.site##sep#_cartes#sep#"

                  Nameconflict="Overwrite"

                  Accept="image/gif, image/jpg, image/jpeg"

                 >

                 <cfimage action="resize" source="File.ServerFile" height="300" width="200" name="resized">

               

              Rien d'extraordinaire !

               

              Cordialement

              • 4. Re: CFimage resize
                WolfShade Level 4

                Your CFFILE is saving the uploaded image to a destination.  Use CFFILE to read the file you saved as a binary, give it a name, and use that for the CFIMAGE resize.

                 

                OR, if you don't need the original file, you can skip saving it to a destination and save it in memory and use the memory to resize the file and save that to a destination.

                 

                Votre CFFILE enregistre l'image téléchargée dans une destination. Utilisez CFFILE pour lire le fichier que vous avez enregistré en tant que binaire, donnez-lui un nom et utilisez-le pour le redimensionnement CFIMAGE.

                OU, si vous n'avez pas besoin du fichier d'origine, vous pouvez sauter l'enregistrement vers une destination et l'enregistrer en mémoire et utiliser la mémoire pour redimensionner le fichier et l'enregistrer dans une destination.

                 

                HTH,

                 

                ^_^

                • 5. Re: CFimage resize
                  ZNB Level 1

                  Désolé !

                   

                  Puis-je avoir un exemple car je ne comprends pas votre explication ?

                   

                  Merci par avance

                  • 6. Re: CFimage resize
                    WolfShade Level 4

                    Since you are using the "destination" attribute in your CFFILE upload, the uploaded file is saved to the hard drive.  At this point, you cannot use "cffile.serverfile" to access the file because it is no longer in CF memory - it is on the server hard drive.

                     

                    At this point, one option is to (after the first CFFILE) use another CFFILE to "read" the file into a CF variable and use the variable content to resize the image.  This will allow you to keep the original file size saved to the hard drive while saving a second, resized image to the hard drive.  So, after your first CFFILE:

                     

                    Puisque vous utilisez l'attribut "destination" dans votre téléchargement CFFILE, le fichier téléchargé est enregistré sur le disque dur. À ce stade, vous ne pouvez pas utiliser "cffile.serverfile" pour accéder au fichier car il n'est plus dans la mémoire CF - il se trouve sur le disque dur du serveur.

                    À ce stade, une option est de (après le premier CFFILE) utiliser un autre CFFILE pour "lire" le fichier dans une variable CF et utiliser le contenu de la variable pour redimensionner l'image. Cela vous permettra de conserver la taille du fichier d'origine sauvegardée sur le disque dur tout en sauvegardant une seconde image redimensionnée sur le disque dur. Ainsi, après votre premier CFFILE:

                    <!--- Ceci va lire le fichier juste enregistré et le stocker dans une  variable CF nommée 'varName', le redimensionner, puis l'enregistrer sur  le disque dur--->
                    <cffile action="readBinary" file=""#StrPath##session.site##sep#_cartes#sep#filename" variable="varName" />
                    <cfimage action="resize" source="#varName#" height="300" width="200" name="resized">
                    <cffile action="write" file="full path name and file name" output="#resized#" addnewline="no" fixnewline="no" />
                    

                     

                    HTH,

                     

                    ^_^

                    • 7. Re: CFimage resize
                      ZNB Level 1

                      Bonjour,

                       

                      Est-il obligatoire de garder l'image originale ?

                       

                      Merci par avance

                      • 8. Re: CFimage resize
                        WolfShade Level 4

                        Bonjour,

                         

                        C'est tout à fait votre décision. Si vous avez besoin de conserver le fichier d'origine, le code que j'ai fourni conserverait à la fois l'original et les images redimensionnées. Si vous n'avez pas besoin de l'original, vous pouvez utiliser CFFILE action = "delete" pour supprimer l'original.

                         

                        Avec respect,

                         

                        ^_^

                        • 9. Re: CFimage resize
                          ZNB Level 1

                          Malgré toutes vos instructions, cela bloque :-(

                           

                          Voici mon code :

                           

                          <CFOUTPUT>
                             <CFIF right(StrPath,1) IS "/">
                              <cfset sep="/">
                             <CFELSE>
                              <cfset sep="\">
                             </CFIF>

                             <CFFILE
                              Action="UPLOAD"
                              Filefield="PhotoFile"
                              Destination="#StrPath##session.site##sep#_cartes#sep#"
                              Nameconflict="Overwrite"
                              Accept="image/gif, image/jpg, image/jpeg"
                             />
                             <CFIF File.Filesize GT taillemax>
                                
                              <!--- Lire le fichier enregistré et le stocker dans une  variable CF nommée 'varName', le redimensionner, puis l'enregistrer sur  le disque dur---> 
                             
                              <CFFILE
                               action="readBinary"
                               file="#StrPath##session.site##sep#_cartes#sep##serverFileName#.#serverFileExt#"
                               variable="varName"
                              /> 
                              
                              <cfimage action="resize" source="#varName#" height="300" width="200" name="resized">
                             
                              <CFFILE 
                               action="write"
                               file="#StrPath##session.site##sep#_cartes#sep##varName#"
                               output="#resized#"
                               addnewline="no"
                               fixnewline="no"
                              /> 
                              <CFELSE>
                              <cfset myfile2=#File.ServerFile#>
                             </CFIF>

                          Encore merci !

                          • 10. Re: CFimage resize
                            WolfShade Level 4

                            Une des premières choses que j'ai remarqué est que vous utilisez "File.FileSize"; Il doit être "CFfile.FileSize" (le résultat "File.x" a été déconseillé, récemment.)

                            En outre, vous vérifiez le dernier caractère d'un chemin pour voir si le séparateur de dossier est "\" ou "/"; Le dernier caractère du chemin peut ou non toujours être le caractère séparateur. Obtenez le chemin d'accès, puis utilisez "Find ('/', filePath)", à la place. Si "/" existe, c'est le séparateur; Sinon, alors "\" est le séparateur.

                            Une autre suggestion serait de définir des variables à partir du premier CFFILE (c'est-à-dire, sf = CFFILE.ServerFileName, sfe = CFFILE.ServerFileExt, etc.) et utiliser celles du deuxième CFFILE (file = "# StrPath ## session.site ## sep # _cartes # sep ## sf #. # Sfe # ").

                             

                            HTH,

                             

                            ^_^

                            • 11. Re: CFimage resize
                              ZNB Level 1

                              Bonjour,

                               

                              Malgré tous ces changements, il y a toujours le serveur qui plante :-(

                               

                              Vous pouvez essayer :

                               

                              SoLivres - Invitations

                               

                              en choisissant l'image personnelle (et bien entendu très grosse)

                               

                              Merci par avance

                              • 12. Re: CFimage resize
                                WolfShade Level 4

                                Bonjour,

                                 

                                Je ne peux pas accéder au lien que vous avez fourni. Mes administrateurs de travail bloquent l'accès à votre site, à partir d'ici.

                                Quels messages d'erreur, le cas échéant, sont-ils présentés? Des messages d'erreur des FC, des messages d'erreur JavaScript ou du navigateur. Est-ce que les journaux de CFAdmin vous disent quelque chose?

                                 

                                V/r,

                                 

                                ^_^

                                • 13. Re: CFimage resize
                                  ZNB Level 1

                                  Bonjour,

                                   

                                  Le fait que vous ne pouvez pas vous connecter à mon site de développement me contrarie beaucoup. Pourriez-vous vous renseigner pourquoi vos administrateurs bloquent le site que je puisse faire remonter l'information car je suis sur un serveur partagé.

                                   

                                  Je suis pour un long moment pas chez moi. Aussi je teste mes programmes directement en ligne.

                                   

                                  J'ai pour message, un "504 Gateway Time-out"

                                   

                                  Merci par avance

                                  • 14. Re: CFimage resize
                                    Dave Ferguson Level 3

                                    Hi,

                                     

                                    Your source code as a lot of interesting things going on.  Some of that may be causing the issues you are seeing.  Couple points of note for your code:

                                     

                                    • You can always use "/" as a file path separator regardless of operating system you are on.
                                    • The spaces inside your code make it difficult to read.  Spaces inside the pound signs are not necessary and may cause issues.
                                    • Unless you are outputing a var, or quoting it,  you don't need to put pound signs around it.  For example, the var set of myfile2.
                                    • The accept value had spaces in it that makes the value invalid. It should be "image/gif" not "image / gif".
                                    • When writing an image  you should cfimage action="write" after you resize the image.  Alternatively you can just add a destination to the resize action to save it automatically.

                                     

                                    Take a look at this blog post.  It shows how to upload and resize an image.  It does save the image to a database but you can ignore that part.

                                     

                                    http://www.dreamincode.net/forums/topic/254793-how-to-resize-and-add-an-image-to-a-databas e/

                                     

                                    HTH,

                                     

                                    --Dave

                                    • 15. Re: CFimage resize
                                      WolfShade Level 4

                                      Le message d'erreur "504" signifie que le serveur Web attend votre serveur CF et qu'il ne reçoit pas de réponse en temps opportun. Chargez-vous des images dont la taille est supérieure à 1 mégaoctet?

                                      En ce qui concerne la décision des administrateurs réseau de bloquer votre site, je travaille pour le ministère de la Défense (je suis un entrepreneur fédéral) et ils sont très paranoïaques sur la sécurité Internet et intranet. Il existe de nombreux sites Web qui sont bloqués pour diverses raisons, et ils ne changeront pas leur position sur cette question.

                                       

                                      V/r,

                                       

                                      ^_^

                                      • 16. Re: CFimage resize
                                        BKBK Adobe Community Professional & MVP

                                        ZNB  wrote

                                         

                                        Bonjour,

                                         

                                        Quand je veux redimensionner une image (.jpg), j'ai le message suivant :

                                        The  ServerFile image format is not supported on this operating system

                                        mais quand je n'utilise pas cette fonction, le serveur accepte !

                                        <cfimage action="resize" source="File.ServerFile" height="300" width="200" name="resized">

                                        Merci d'avance pour votre aide

                                        <cffile

                                            action = "upload"

                                            destination = "{absolute_path_to_directory}"

                                            etc.

                                        >

                                         

                                        <!--- Plus tard --->

                                        <cfimage action="resize" source="{absolute_path_to_directory}\#File.ServerFile#" height="300" width="200" name="resized">

                                        • 17. Re: CFimage resize
                                          ZNB Level 1

                                          Bonjour,

                                           

                                          La photo issu d'un iPhone fait 938 Ko !

                                           

                                          Mais le problème c'est que cela peut arriver souvent !

                                           

                                          Je vais essayer avec

                                           

                                          http://www.dreamincode.net/forums/topic/254793-how-to-resize-and-add-an-image-to-a-databas e

                                           

                                          Mais je trouve cela compliqué. Suis étonné qu'Adobe n'est pas intégré la fonction.

                                           

                                          Merci par avance

                                           

                                          NB : je comprends pour le blocage de sites

                                          • 18. Re: CFimage resize
                                            ZNB Level 1

                                            Bonjour,

                                             

                                            J'ai essayé avec Dreamincode et cela plante toujours !

                                             

                                            Je ne comprends plus rien. Dois être maudit :-(

                                             

                                            Voici mon code :

                                             

                                            <span class="notranslate" onmouseover="_tipon(this)" onmouseout="_tipoff()">

                                            <span class="google-src-text" style="text-align: left; direction: ltr;">

                                            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

                                            <html xmlns="http://www.w3.org/1999/xhtml">

                                            <head>

                                            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

                                            <CFINCLUDE template="inc_init_admin.cfm">

                                            <CFINCLUDE template="inc_verif_var2.cfm">

                                            <title>Essai cfimage</title>

                                            <CFIF NOT IsDefined("mode")><cfset mode=""></CFIF>

                                            <cfset StrPath=ExpandPath( "../../" ) />

                                            <cfset taillemax=500000>

                                            </head>

                                            <body>

                                            <!--------------------------------- INSERT ------------------------------------------>

                                            <CFIF Mode IS "insert">

                                              <CFOUTPUT>

                                               <CFIF Find('/',StrPath) IS "/">

                                                <cfset sep="/">

                                               <CFELSE>

                                                <cfset sep="\">

                                               </CFIF>

                                              </CFOUTPUT>

                                              <cfif Picture neq "">

                                               <cftry>

                                                <cffile

                                                 action="upload"

                                                 filefield="Picture"

                                                 Destination="#StrPath#zennetbuilder.com#sep#Solivres#sep#_cartes#sep#Images_upload"

                                                 accept="image/jpeg, image/jpg, image/pjpeg"

                                                 nameconflict="makeunique">

                                             

                                                <cfimage

                                                 action = "info"

                                                 source = "#StrPath#zennetbuilder.com#sep#Solivres#sep#_cartes#sep#images_upload#sep##serverfile#"

                                                 structname = "Picturetest">

                                              

                                                <cfoutput>

                                                 <cfset Picturewidth =  #Picturetest.width#>

                                                 <cfset Pictureheight =  #Picturetest.height#>

                                                 <cfset PictureSmallwidth = 200>

                                                 <cfset PictureSmallHeight = #Pictureheight# / #Picturewidth# * #PictureSmallwidth#>

                                                </cfoutput>

                                             

                                                <cfimage action = "resize"

                                                 height = "#Round(PictureSmallHeight)#"

                                                 width="200"

                                                 source="#StrPath#zennetbuilder.com#sep#Solivres#sep#_cartes#sep#Images_upload#sep##serverfile#"

                                                 destination="#StrPath#zennetbuilder.com#sep##Solivres#sep#_cartes#sep#Images#sep##serverfile#"

                                                >

                                              

                                               </cftry>

                                             

                                              <cfelse>

                                               <CFQUERY name="Cartes" datasource="#session.dbname#">

                                                INSERT INTO cartes

                                                (PICTURE

                                                sitename)

                                                VALUES

                                                ('#SERVERFILE#'

                                                '#session.site#')

                                               </cfquery>

                                               <script language="Javascript">

                                                alert ("Votre fichier a été enregistré")

                                               </script>

                                               <cflocation url="cartes.cfm">

                                              </cfif>

                                            </CFIF>

                                             

                                            <!--------------------------------- Addpic ------------------------------------------>

                                            <CFIF Mode IS "">

                                                <table border="0" cellpadding="0" cellspacing="1" width="500" align="center">

                                              <cfform action="picture_add.cfm" name="AddPic" method="post" enctype="multipart/form-data">

                                               <tr>

                                                <td align="right" class="Copy" valign="top">Photo:</td>

                                                <td align="left" class="Copy" valign="top">

                                                 <cfinput type="file" name="PICTURE" required="no">

                                                </td>

                                               </tr>

                                               <tr>

                                                <td> </td>

                                                <td align="left">

                                                 <cfinput type="submit" name="Submit" value="Submit">

                                                </td>

                                               </tr>

                                                    </cfform>

                                                </table>

                                            </CFIF>

                                            </body>

                                            </html>

                                            </span> !

                                             

                                            Merci par avance

                                            • 19. Re: CFimage resize
                                              ZNB Level 1

                                              Bonjour,

                                               

                                              Help !!!

                                               

                                              Je ne trouve toujours pas :-(

                                               

                                              Je ne vois pas le bug !

                                               

                                              Je voudrais en faire une fonction. C'est étonnant qu'Adobe ne propose pas ce type de fonction en standard !

                                              Existe-t-il des sites qui le propose ?

                                               

                                              Merci par avance pour votre aide

                                              • 20. Re: CFimage resize
                                                BKBK Adobe Community Professional & MVP

                                                Your original question:

                                                <cfimage source="File.ServerFile">

                                                The  ServerFile image format is not supported on this operating system

                                                ColdFusion responded correctly. It was an error. See my last post how you can fix it.

                                                • 21. Re: CFimage resize
                                                  ZNB Level 1

                                                  Bonjour,

                                                   

                                                  "The  ServerFile image format is not supported on this operating system"

                                                   

                                                  C'est justement là mon problème car je ne vois pas pourquoi le serveur refuse ce format alors :

                                                  • pour d'autres scripts, je n'ai pas de soucis
                                                  • accept="image/jpeg, image/jpg, image/pjpeg"

                                                  Merci pour votre aide

                                                  • 22. Re: CFimage resize
                                                    BKBK Adobe Community Professional & MVP

                                                    ZNB  wrote

                                                     

                                                    <cfimage source="File.ServerFile">

                                                    "The  ServerFile image format is not supported on this operating system"

                                                    Car le fichier file.serverfile n'existe pas. Vous voulez dire: #file.serverfile#

                                                    • 23. Re: CFimage resize
                                                      ZNB Level 1

                                                      Merci pour votre aide !

                                                       

                                                      J'ai enfin réussi.

                                                       

                                                      Je ne devais pas être très réveillé ;-)

                                                       

                                                      Merci à tous