المجموعة الاستشارية لاندونيسيا الثعبان وستدين
سؤال
وأنا باستخدام pycurl لتحميل ملف من خلال وضع والمجموعة الاستشارية لاندونيسيا الثعبان النصي لاستلام الملف على جانب الملقم. أساسا، رمز على جانب الملقم هو:
while True:
next = sys.stdin.read(4096)
if not next:
break
#.... write the buffer
ويبدو أن هذا العمل مع النص، ولكن ليس الملفات الثنائية (أنا على ويندوز). مع الملفات الثنائية، حلقة تفعل فواصل stdin.read بعد تلقي أي شيء حول 10KB إلى 100KB. أي أفكار؟
المحلول
وتحتاج إلى تشغيل بيثون في الوضع الثنائي. تغيير النصي CGI الخاص بك من:
#!C:/Python25/python.exe
وأو أيا كان ما تقوله ل:
#!C:/Python25/python.exe -u
أو يمكنك أن تفعل ذلك برمجيا مثل هذا:
msvcrt.setmode(sys.stdin.fileno(), os.O_BINARY)
وقبل أن تبدأ القراءة من stdin
.
نصائح أخرى
mod_wsgi بدلا من ذلك من المجموعة الاستشارية لاندونيسيا. وسوف توفر لك ملف إدخال لتحميل هذا ما فتح بشكل صحيح.
لا تنتمي إلى StackOverflow