2017-10-23 12 views
0

enter image description here Ich bin ehrlich gesagt nicht sicher, was mit meinem Code falsch ist. Ich habe versucht, herauszufinden, was das Problem für ein paar Stunden ist, jetzt ohne Erfolg. Im Grunde versuche ich ein Bild in ein bestimmtes Verzeichnis mit der Suite # als Dateiname hochzuladen. Zuerst musste ich jedoch ein paar Dinge überprüfen:cffile Verzeichnis und Upload funktioniert für einige Datenbankvariablen, aber für einige es nicht

1) Überprüfen Sie, ob der Ordner bereits existiert. Wenn dies nicht der Fall ist, erstellen Sie ein neues mit einer komplexen Stadtvariablen und laden Sie das Bild mit der Suite # als Dateinamen hoch. 2) Wenn der Ordner existiert. Laden Sie die Datei einfach in den entsprechenden Ordner der komplexen Stadtvariablen hoch. Ich übergebe diese beiden Abfragezeichenfolgenparameter aus einer SQL-Abfrage auf meiner Seite.

Hier ist mein Code:

HTML:

<form name="driverkeylistform" id="form" enctype="multipart/form-data" action="fileuploadtest.cfm?Suite=#getOrder.SuiteNum#&Ordernum=#getOrder.ORDERNUM#" method="post" onsubmit="return validateForm()"> 
 

 
<div class="row" id="submittedButtons"> 
 
\t <input type="file" name="fileUpload" id="file" class="form-control-file" accept="image/*" capture="camera" required onchange="return fileValidation()"> 
 
\t <input type="submit" name="dbAction" class="btn btn-primary" value="Done/Upload/Send Email"> 
 
</div> 
 

 
</form>

Auf Verarbeitung Seite:

Ich habe versucht, eine cftry und catch-Anweisung setzen zu fangen irgendwelche Fehler und ich t gab mir diesen Fehler:

Attribute validation error for tag CFFILE. Caught an exception, type = Application

<!----Get Data----> 
<cfquery name="communities" datasource="testData"> 
    SELECT DISTINCT 
    [COMPLEX CITY] as COMPLEXCITY, 
    [COMPLEX NAME] as COMPLEXNAME, 
    [COMPLEX ST] as COMPLEXST, 
    [ORDERNUM], 
    [Suite##] AS SUITE 
    FROM SCHEDULE 
    WHERE SUITE = '#URL.Suite#' 
    AND [ORDERNUM] = '#URL.Ordernum#' 
</cfquery> 

<cfset newFileName = #URL.Suite# /> 
<cfset defaultDirectory = "D:\uploads\" /> 
<cfset fileDestination = #communities.COMPLEXCITY# & "\" & #communities.COMPLEXNAME# & "\"> 

<!---Pull complex city and check to see if a folder is available in directory, if it is. Upload it into folder directory ---> 
<cftry> 
<cfif directoryExists("#defaultDirectory##communities.COMPLEXCITY#")> 
<cffile 
     action="upload" 
     accept="image/jpg, image/jpeg, image/png" 
     destination="#defaultDirectory##fileDestination#" 
     nameconflict="makeunique" 
     filefield="form.fileUpload" 
/> 
<cfset sourcePath = #cffile.serverFileName# & "." & #cffile.serverFileExt# /> 
<cfset destinationPath = #newFileName# & "." & #cffile.serverFileExt# /> 
<cffile 
    action="rename" 
    source="#defaultDirectory##fileDestination##sourcePath#" 
    destination="#defaultDirectory##fileDestination##destinationPath#" 
/> 
<cfelse> 
<!--- If it isn't, create folder of complex city variable, and upload it into that folder with file rename of Suite # as filename. ---> 
<cfdirectory 
    action="create" 
    directory="#defaultDirectory##fileDestination#" 
> 
<cffile 
     action="upload" 
     accept="image/jpg, image/jpeg, image/png" 
     destination="#defaultDirectory##fileDestination#" 
     nameconflict="makeunique" 
     filefield="form.fileUpload" 
/> 
<cfset sourcePath = #cffile.serverFileName# & "." & #cffile.serverFileExt# /> 
<cfset destinationPath = #newFileName# & "." & #cffile.serverFileExt# /> 
<cffile 
    action="rename" 
    source="#defaultDirectory##fileDestination##sourcePath#" 
    destination="#defaultDirectory##fileDestination##destinationPath#" 
/> 
</cfif> 
<cfcatch type="any"> 
    <cfoutput> 
      <p>#cfcatch.message#</p> 
      <p>Caught an exception, type = #CFCATCH.TYPE#</p> 
    </cfoutput> 
</cfcatch> 

ich beachten sollte: Die Funktionalität Datei-Upload funktioniert für einige der Benutzer. wie in diesem Beispiel .:

enter image description here

Aber nicht für diese und stattdessen gibt einen 500 Interner Serverfehler in der ich tun, um die cftry Blöcke begonnen.

enter image description here

+0

Welcher der beiden cffile-Aufrufe schlägt fehl? –

+0

Ich habe gerade etwas bemerkt. Aus irgendeinem Grund lädt jetzt die zweite Bestellnummer 279137 keine Dateien hoch. Ich habe meinen gesamten Code auskommentiert und habe einfach einen einfachen Upload-Test durchgeführt und er lädt den Ordner überhaupt nicht hoch. Die Bestellnummer 228732 wird jedoch hochgeladen. – Curious13

+0

Was ist die Codezeile, auf der es fehlschlägt? Können Sie uns die volle '' geben? – snackboy

Antwort

2

Per Chat: Die <cfif directoryExists()> Bedürfnisse vollständige Dateiziel umfassen daher communities.COMPLEXNAME Bedarf hinzugefügt werden. Ich würde empfehlen <cfif directoryExists("#defaultDirectory##fileDestination#")>.

Auch Linien, die serverFileName und serverFileExt beziehen müssen auf der Client-Datei suchen und sollten clientFileName und clientFileExt aktualisiert werden.

Verwandte Themen