المجموعة الاستشارية لاندونيسيا الثعبان وستدين

StackOverflow https://stackoverflow.com/questions/838991

  •  22-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام 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 بدلا من ذلك من المجموعة الاستشارية لاندونيسيا. وسوف توفر لك ملف إدخال لتحميل هذا ما فتح بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top