file - ملف خادم كولدفوسيون بحرف الفاصلة العليا




server coldfusion (2)

تخميني هو أن الفاصلة العليا هي واحدة من تلك الفواصل العليا متعددة الأحرف التي يستخدمها ميكروسوفت ورد في كثير من الأحيان. حرف مثل هذا قد لا يكون حرفا صالحا لنظام الملفات أوس الخاص بك.

قد تحتاج إلى إعادة ترميز النظام لاستخدام ملف مؤقت عند التحميل ثم إعادة تسميته إلى اسم ملف صالح بعد نجاح عملية التحميل.

وهنا بعض المشاكل الأساسية اطلاق النار المعلومات.

التفاف التعليمات البرمجية في كتلة محاولة / قبض وتفريغ الخطأ الكامل إلى إخراج الصفحة. أمثلة على استخدام تري / كاتش / دومب أدناه. تفرض الأمثلة أدناه خطأ بقسمة الصفر.

بالنسبة إلى علامة كفمل:

<cftry>
    <cfset offendingCode = 1 / 0>

    <cfcatch type="any">
        <cfdump var="#cfcatch#" label="cfcatch">
    </cfcatch>
</cftry>

ل كفسكريبت كمل:

<cfscript>
    try {
        offendingCode = 1 / 0;
    } catch (any e) {
        writeDump(var=e, label="Exception");
    }
</cfscript>

عندما أحاول تحميل ملف باستخدام الفاصلة العليا، أحصل على الخطأ:

    Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

إذا كان اسم الملف هو test's.pdf، أحصل على الخطأ. ولكن إذا قمت بتغيير الاسم إلى test.pdf، ليس هناك خطأ.

هل أحد يعرف لماذا؟

شكر


كان لي حالة مماثلة حيث كنت ديناميكيا إنشاء أسماء الملفات للصفحات التي تم إنشاؤها ملفات إكسيل من نتائج الاستعلام. النهج الذي أخذته هو إنشاء وظيفة استبدال جميع الشخصيات السيئة مع شيء. هنا جزء من هذه الوظيفة.

<cfargument name="replacementString" required="no" default=" ">
<cfscript>
var inValidFileNameCharacters = "[/\\*'?[\]:><""|]";
return reReplace (arguments.fileNameIn, inValidFileNameCharacters, arguments.replacementString, "all");
</cfscript>

قد ترغب في النظر في نهج المعاكس. بدلا من الإعلان عن أحرف غير صالحة واستبدالها، قم بإعلان الأحرف الصحيحة واستبدال أي شيء غير موجود في قائمة الأحرف الصالحة.

أقترح جعل هذه الوظيفة متاحة على جميع الصفحات المناسبة. كيف تفعل ذلك يعتمد على الوضع الخاص بك.





coldfusion