2015-04-01 7 views
11

मेरे पास एक बहुत ही बुनियादी पृष्ठ है जिसमें <input type="file"> तत्व शामिल है। जब मैं फ़ाइल को चुने गए फ़ाइल के साथ फॉर्म जमा करता हूं, तो सर्वर Excel में खोले जाने वाले स्प्रेडशीट के साथ प्रतिक्रिया करता है (एक "नई विंडो")। इस व्यवहार का निहितार्थ यह है कि प्रारंभिक स्क्रीन और इनपुट तत्व अभी भी आईई में दिखाई दे रहे हैं। अगर मैं चयनित फ़ाइल की डिस्क पर डेटा बदलता हूं और फॉर्म पुनः सबमिट करता हूं, तो इंटरनेट एक्सप्लोरर दूसरी बार पुरानी सामग्री अपलोड करता है; मेरे नवीनतम परिवर्तन सर्वर पर भेजे गए सामग्री में मौजूद नहीं हैं। अगर मैं इनपुट के ब्राउज़ ... बटन के माध्यम से फ़ाइल का चयन करता हूं, तो नई फ़ाइल सामग्री अपेक्षित के रूप में अपलोड की जाती है। फ़ायरफ़ॉक्स हमेशा डिस्क से फ़ाइल की सामग्री भेजता है जो अपेक्षित/वांछित व्यवहार है। ऐसा लगता है कि इंटरनेट एक्सप्लोरर अपलोड की गई फाइल सामग्री के किसी प्रकार का कैशिंग कर रहा है।इंटरनेट एक्सप्लोरर कैशिंग फ़ाइल अपलोड करता है?

क्या इस "फीचर" को अक्षम करने का कोई तरीका है और क्या आईई प्रत्येक बार फॉर्म सबमिट होने पर डिस्क से डेटा खींचती है?

क्या इस व्यवहार पर कोई दस्तावेज उपलब्ध है? यह पहली बार है जब मैंने इसका सामना किया है और मेरी खोज काफी हद तक खाली हो गई है।

+0

क्या होगा यदि यह * अपलोड * को कैश नहीं कर रहा है (जिसे मैंने कभी नहीं सुना है और वास्तव में अजीब होगा) लेकिन उत्पन्न परिणाम? क्या परिणाम उचित कैशिंग (या, बल्कि, नो-कैशिंग) हेडर भेज रहा है? –

+0

@ पेक्का: सर्वर लॉग ब्राउज़र को POST अनुरोध करने और प्रत्येक अपलोड प्रयास के लिए 200 ओके लौटने से दिखाता है। अगर यह प्रतिक्रिया को कैश कर रहा था, तो मुझे उम्मीद है कि इंटरनेट एक्सप्लोरर पूरी तरह से अनुरोध को छोड़ देगा या सर्वर के लिए 304 संशोधित स्थिति वापस नहीं करेगा। – Todd

+0

फ़ाइल को अपलोड और संसाधित करने के लिए सर्वर की तरफ किस तकनीक का उपयोग किया जा रहा है? आप अपलोड की गई फाइलों के चेकसम को लॉग इन कर सकते हैं यह देखने के लिए कि ब्राउजर वास्तव में गलत फाइल भेज रहा है या सर्वर सर्वर पर कुछ और गलत है या नहीं, –

उत्तर

4

आप live demos posted on MS-Connect साथ अनुमान का परीक्षण कर सकते हैं।

[...] बग आईई 10 के साथ शुरू हुआ, जब फाइललिस्ट और ब्लॉब लागू किए गए थे।
input.files फ़ाइल/ब्लॉब आइटम का एक HTML5 फ़ाइलसूची है।
इसे पॉप्युलेट करने के लिए, आईई प्रत्येक फ़ाइल पिकर पसंद blobs। उनके पास "स्नैपशॉट स्टेट" (डब्ल्यू 3 सी टर्म) है।
जमा करने से पहले चयनित फ़ाइल को अपडेट होने पर उन्हें सिंक किया जाता है।
बग है, आईई यह पता लगाने में विफल रहता है कि फ़ाइल हटा दी गई है, नाम बदल दिया गया है या बदला गया है या नहीं।
फ़ाइलपिकर स्नैपशॉट उस परिस्थिति में पुराना हो जाता है।

यहाँ क्या होता है जब एक फ़ाइल filepicker में चुना जाता है, तो नाम दिया और संपादित, filepicker चयन सबमिट करने से पहले। यद्यपि एक नई फ़ाइल (मूल फ़ाइल नाम के साथ) को इसके स्थान पर प्रतिस्थापित किया गया है, मूल फ़ाइल (अब अलगनाम और संशोधित पाठ) फ़ॉर्म में भेजा जाता है। यह कैसे संभव है? ऐसा लगता है कि यह ntfs ऑब्जेक्ट आईडी के माध्यम से ट्रैक किया गया था, जिसका उपयोग Distributed Link Tracking के साथ किया जाता है। इस स्क्रीनशॉट में ध्यान से ध्यान दें, फ़ाइल नाम फ़ाइल सामग्री फ़ाइल से सहमत नहीं है।

तो, यह एक "कैशिंग" बात बिल्कुल नहीं है। यह एक ट्रैकिंग बग है।

0

मैंने इसे स्वयं नहीं किया है, लेकिन आप फॉर्म कार्रवाई में डमी पैरामीटर का उपयोग करने और प्रत्येक सबमिट कार्रवाई से पहले इसके मूल्य को बदलने का प्रयास करना चाह सकते हैं। उदाहरण के लिए, यदि आपके पास <form action="foo.php"> है, तो इसे <form action="foo.php?dummy=0"> पर बदलें, और उसके बाद कार्रवाई भाग को बदलने के लिए जावास्क्रिप्ट का उपयोग करें। प्रत्येक सबमिट से ठीक पहले action="foo.php?dummy=1" और इतने पर।

1

क्या आपने अपने input टैग के लिए autocomplete विशेषता का उपयोग करने का प्रयास किया है? बंद/डिफ़ॉल्ट

  • पर

    स्वत: पूर्ण =/पर:

    उदाहरण के लिए

    <input type="text" autocomplete="off" /> 
    

    मूल्य के लिए मजबूर करना चाहिए कभी नहीं पुनः उपयोग किया जा जा के रूप में W3C docs में कहा गया है - राज्य पर इंगित करता है कि वैल ue विशेष रूप से संवेदनशील नहीं है और उपयोगकर्ता अपने उपयोगकर्ता एजेंट पर उस नियंत्रण के लिए दर्ज मूल्यों को याद रखने में सक्षम होने की उम्मीद कर सकता है।

  • - ऑफ स्टेट इंगित करता है कि नियंत्रण का इनपुट डेटा विशेष रूप से संवेदनशील है (उदाहरण के लिए परमाणु हथियार के लिए सक्रियण कोड); या यह एक ऐसा मान है जिसे कभी भी (उदाहरण के लिए बैंक लॉगिन के लिए एक बार की कुंजी) का पुन: उपयोग नहीं किया जाएगा और उपयोगकर्ता को पर भरोसा करने में सक्षम होने के बजाय प्रत्येक बार डेटा को स्पष्ट रूप से दर्ज करना होगा उसके लिए मूल्य prefill करने के लिए UA; या दस्तावेज़ अपने स्वयं के स्वत: पूर्ण तंत्र प्रदान करता है और नहीं चाहता है कि उपयोगकर्ता एजेंट स्वत: पूर्णता मान प्रदान करे।
0

आईई 10,11 में मेरा एक ही मुद्दा था। मैं कोड

var file = $('input[type="file"]'); 
file.removeAttr('value'); 
var cloneFile = file.clone(); 
file.parent().get(0).replaceChild(cloneFile.get(0), file.get(0)); 

नीचे का उपयोग कर आप फ़ाइल के लिए एकाधिक वस्तु हो रही है तो तरह

$('input[type="file"]').eq(-2); 

चयनकर्ता के बाद eq (-2) का उपयोग मेरे मामले में टिप्पणी किसी भी मुद्दे इसे ठीक करने में सक्षम हूँ।

संबंधित मुद्दे