मैं इसका मूल्य कैसे निर्धारित कर सकता हूं?
<input type="file" />
मैं इसका मूल्य कैसे निर्धारित कर सकता हूं?
<input type="file" />
जवाबों:
सुरक्षा कारणों से आप नहीं कर सकते।
कल्पना कीजिए:
<form name="foo" method="post" enctype="multipart/form-data">
<input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>
आप नहीं चाहते कि आपके द्वारा देखी जाने वाली वेबसाइटें ऐसा करने में सक्षम हों, क्या आप? =)
आपके प्रश्न का उत्तर नहीं (जो अन्य लोगों ने उत्तर दिया है), लेकिन यदि आप किसी अपलोड की गई फ़ाइल फ़ील्ड की कुछ संपादित कार्यक्षमता चाहते हैं, तो आप क्या करना चाहते हैं:
<input>
टैग एक नई फ़ाइल अपलोड करने के लिए<input type="file" />
हूं (उत्पाद छवि को बदलना नहीं चाहता), तो मुझे मौजूदा उत्पाद छवि कैसे सेट करनी चाहिए ? मैं एक <img />
टैग में मौजूदा छवि दिखा सकता हूं लेकिन जब मैं सबमिट करता हूं तो फ़ाइल पास नहीं होती है।
जैसा कि यहाँ बाकी सभी ने कहा है: आप जावास्क्रिप्ट के साथ कोई फ़ाइल स्वचालित रूप से अपलोड नहीं कर सकते।
तथापि! यदि आपके पास अपने कोड में भेजने के लिए आवश्यक जानकारी है (यानी, पासवर्ड नहीं। Txt), तो आप इसे एक बूँद के रूप में अपलोड कर सकते हैं टाइप के , और फिर इसे एक फ़ाइल के रूप में मान सकते हैं।
सर्वर क्या देख कर समाप्त होगा वास्तव में किसी के मूल्य को निर्धारित करने से अप्रभेद्य होगा <input type="file" />
। चाल, अंततः, सर्वर के साथ एक नया XMLHttpRequest () शुरू करना है ...
function uploadFile (data) {
// define data and connections
var blob = new Blob([JSON.stringify(data)]);
var url = URL.createObjectURL(blob);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'myForm.php', true);
// define new form
var formData = new FormData();
formData.append('someUploadIdentifier', blob, 'someFileName.json');
// action after uploading happens
xhr.onload = function(e) {
console.log("File uploading completed!");
};
// do the uploading
console.log("File uploading started!");
xhr.send(formData);
}
// This data/text below is local to the JS script, so we are allowed to send it!
uploadFile({'hello!':'how are you?'});
तो, आप संभवतः इसके लिए क्या उपयोग कर सकते हैं? मैं HTML5 कैनवास तत्वों को jpg के रूप में अपलोड करने के लिए इसका उपयोग करता हूं । यह उपयोगकर्ता को एक file
input
तत्व को खोलने की परेशानी से बचाता है , केवल स्थानीय, कैश्ड छवि का चयन करने के लिए जो कि वे केवल आकार परिवर्तन, संशोधित, आदि .. लेकिन यह किसी भी फ़ाइल प्रकार के लिए काम करना चाहिए ।
1) फ़ाइल इनपुट में डिफ़ॉल्ट मान की समस्या "सुरक्षा कारणों से नहीं" है, लेकिन ब्राउज़र "बिना किसी अच्छे कारण के इसे लागू करने में विफल रहे": इसे देखें गहरी रिपोर्ट देखें
2) एक सरल समाधान फ़ाइल इनपुट के शीर्ष पर पाठ इनपुट का उपयोग करने के लिए हो सकता है, जैसे यहां । बेशक, आपको फ़ाइल भेजने के लिए कुछ कोड की आवश्यकता है, अब पाठ इनपुट में मूल्य और फ़ाइल इनपुट नहीं।
मेरे मामले में, एचटीए एप्लिकेशन करना, यह कोई समस्या नहीं है, मैं फॉर्म का उपयोग बिल्कुल नहीं करता हूं।
HTML में परिभाषित करें:
<input type="hidden" name="image" id="image"/>
जेएस में:
ajax.jsonRpc("/consulta/dni", 'call', {'document_number': document_number})
.then(function (data) {
if (data.error){
...;
}
else {
$('#image').val(data.image);
}
})
उपरांत:
<input type="hidden" name="image" id="image" value="/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8U..."/>
<button type="submit">Submit</button>
वास्तव में हम यह कर सकते हैं। हम WebTrowser नियंत्रण का उपयोग करके c # में FormToMultipartPostData लाइब्रेरी का उपयोग करके फ़ाइल मान को डिफ़ॉल्ट रूप से सेट कर सकते हैं। हमें इस लाइब्रेरी को अपनी परियोजना में डाउनलोड और शामिल करना होगा। Webbrowser उपयोगकर्ता को वेब पेजों को फ़ॉर्म के अंदर नेविगेट करने में सक्षम बनाता है। एक बार वेब पेज लोड हो जाने पर, WebBrowser1_DocumentCompleted के अंदर की स्क्रिप्ट निष्पादित हो जाएगी। इसलिए,
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
FormToMultipartPostData postData =
new FormToMultipartPostData(webBrowser1, form);
postData.SetFile("fileField", @"C:\windows\win.ini");
postData.Submit();
}
डाउनलोड करने और संपूर्ण संदर्भ के लिए नीचे दिए गए लिंक को देखें।
https://www.codeproject.com/Articles/28917/Setting-a-file-to-upload-inside-the-WebBrowser-com