منذ بضعة أيام، تمت إضافة وظيفة تنزيل إدارة الملفات إلى النظام، وهي مطلوبة ليتم تنفيذها في ملف ASPX للتحكم في الأذونات.
لذلك أضف الكود التالي:
...
Response.ContentType = mime; // نوع MIME المقابل
Response.AppendHeader("Content-Disposition", "attachment; filename="" +fileName + """);
Response.BinaryWrite(bytes);
Response.End();
...
عندما يحتوي fileName على أحرف صينية، عند تنزيل الملف وحفظه، يصبح اسم الملف مشوهًا ويحتاج إلى تعديل بواسطة المستخدم، مما يتعارض مع نيتي الأصلية المتمثلة في تعيين اسم الملف الافتراضي.
الحل 1: اسم الملف لتشفير عنوان URL وتغيير الجملة التي تحتها خط إلى
Response.AppendHeader("Content-Disposition", "attachment; filename="" + Server.UrlEncode(fileName) + """);
هذا كل شيء.
على الرغم من حل مشكلة الأحرف الصينية المشوهة، لا تزال هناك مشكلة أخرى: أثناء الاختبار، يصبح اسم الملف الذي تم تنزيله وحفظه أحيانًا هو اسم الصفحة (.aspx)، على الرغم من أنه يمكن تنزيل المحتوى محليًا يجب تغيير الاسم والنوع، وهذا سوف يسبب ارتباكًا كبيرًا للمستخدمين.
هناك طريقة أخرى لحل المشكلتين السابقتين بسهولة:
الحل 2: افترض أن عنوان URL الحالي هو http://localhost/download.aspx?id=123 واسم الملف هو "Download.pdf"، نحتاج فقط إلى تغيير عنوان URL للتنزيل إلى http://localhost/download.aspx
ذلك ، يمكن التعليق على الكود الذي تحته خط، جربه، وستكون راضيًا جدًا عن النتيجة!