2010-10-19 3 views
1

J'utilise CF-8, Windows XP et IE 5.5.<cffile action = "Read"> n'obtenant pas la valeur de téléchargement désirée

J'utilise simple tag à savoir. mais la sortie je reçois est gibberih pur le long witht le texte du fichier (document Word)

upld.cfm

<cffile action="read" file="C:\ColdFusion8\wwwroot\Proj\updl\fileDisk\SOL.doc" variable="fileDisk" > 
      <cfoutput>#fileDisk# 
     </cfoutput> 

<cfoutput> 
<form name="upload" method="post" action="actionUpld.cfm?form_Num=#form_Num#" enctype="multipart/form-data"> 

<input name="uplForm" id="uplForm" type="file" > 
<input type="submit" name="submitUpld" value="Save" onclick="" > 

</form> 
</cfoutput> 

actionUpld.cfm

<cftry> 
<cfscript>   
      newUPL = CreateCFC('cfcs.projDB');  
      newUPL.Implementation_Num = url.form_Num; 
      newUPL.uplForm = form.uplForm; 
      newUPL.putUPL();   
</cfscript> 
<cfcatch type="any" > 
     <cfoutput > 
      <hr> 
      <h4>Other Error: #cfcatch.Type#</h4> 
       <li><b>Message:</b> #cfcatch.Message# 
       <li><b>Detail:</b> #cfcatch.Detail# 
       <li><b>Error Code:</b> #cfcatch.ErrorCode# 
      </cfoutput> 
     </cfcatch> 
</cftry> 
<cflocation url="upld.cfm??form_Num=#form_Num#" > 

Comment utiliser au mieux le cffile pour sortir le fichier?

Aussi, quand je regarde la DB, je reçois le nom de fichier comme

"C:\ColdFusion8\runtime\servers\coldfusion\SERVER-INF\temp\wwwroot-tmp\qeq344.tmp" 
How to correct it? 

Y at-il beaucoup mieux.

+2

Pouvez-vous poster du code et indiquer quel type de fichier voulez-vous lire? Avec très peu de choses à faire, je suppose que vous essayez peut-être de lire un fichier binaire ..? – Leigh

+0

J'essaie de lire un fichier MS-word. L'emplacement que j'ajoute à la table DB n'est pas celui que je veux ajouter, car c'est un dossier Temp – Fransis

+0

sous CF8, où je veux ajouter un dossier exclusif. – Fransis

Répondre

2

Aussi quand je regarde la DB, je suis obtenir le nom du fichier C: \ ColdFusion8 \ runtime serveurs \ \ coldfusion \ temp SERVEUR-INF \ \ wwwroot-tmp \ qeq344.tmp

Il s'agit d'un nom de fichier temporaire attribué aux fichiers nouvellement importés. Sur votre page d'action, vous devez utiliser cffile action="upload" ... pour déplacer ce fichier temporaire à l'emplacement souhaité. Cela va remplir une structure appelée CFFILE avec des détails sur le fichier téléchargé, tels que CFFILE.serverFile et CFFILE.serverDirectory. (Ou utilisez le « résultat » attribut pour sortir les détails quel que soit le nom que vous choisissez la structure.)

Comment utiliser au mieux le cffile à la sortie le fichier?

Vous ne pouvez pas afficher les fichiers binaires (comme * .doc) avec cfoutput. Pour afficher/télécharger ces fichiers dans un navigateur, utilisez cfcontent

+0

lorsque j'utilise dans le fichier "upld.cfm", pour afficher les résultats de la pièce jointe sauvegardée, "cfcontent/download the file" est en cours d'initialisation et ne permet pas l'affichage de la page entière – Fransis

+1

Oui, vous ne pouvez pas faire les deux même page. (Pas sans incorporation ou éventuellement iframes). La raison en est qu'une page ne peut avoir qu'un (1) type de contenu. C'est-à-dire qu'il peut s'agir d'un document Word ("application/msword") ou "text/html", mais pas les deux. Donc, votre cfcontent fait que le reste du texte/html de la page est ignoré. Si vous voulez afficher d'autres fichiers html, placez le cfcontent dans un script séparé et faites un lien vers celui-ci depuis votre page principale. – Leigh