0

次の cffile コードに苦労しています。動的に生成された画像ディレクトリを渡そうとしています。その名前はセッション変数 (新しいメンバーごとに 1 つ) に格納されています。その名前を cffile タグの destination 属性に渡す必要があります。

ファイルのアップロードを処理するための私のコードは次のとおりです

<cfset mypath=expandpath('UserImages/UploadedImages/' & '#session.details.uimages#')>
<cffile action="upload" destination="#mypath#" nameconflict="makeunique"/>

#session.details.uimages# を実際のディレクトリ名に置き換えると、アップロードは正常に機能します。私がやろうとしていることは達成可能ですか、それとも不可能ですか?

私は髪を引き裂いているので、どんな助けや指導も歓迎します!

よろしくお願いします!

4

1 に答える 1

6

ディレクトリが存在しない場合は、最初に作成する必要があります。

uimages がユーザーからのものである場合は、最初にそれが有効なディレクトリ名であることを確認することを忘れないでください (具体的には、パス トラバーサル構文、つまり が含まれていないこと..)。

また、cffileには必要な filefield 属性がありませんでした。

セッション変数の周りにハッシュがないことにも注意してください - それらは不要です。

<cfset MyPath = expandPath( 'UserImages/UploadedImages/' & session.details.uimages ) />

<cfif NOT DirectoryExists( MyPath )>
    <cfset DirectoryCreate( MyPath ) />
</cfif>

<cffile
    action       = "upload"
    destination  = "#MyPath#"
    nameconflict = "makeunique"
    filefield    = "name_of_field_to_upload_from"
/>
于 2012-08-26T01:08:44.997 に答える