এইচটিএমএলে কোনও ফাইল ইনপুটকে কীভাবে মান সেট করবেন?


337

বিঃদ্রঃ:

নীচের উত্তর এবং মন্তব্যগুলি ২০০৯ সালে লিগ্যাসি ব্রাউজারগুলির অবস্থা প্রতিফলিত করে Now

ডেমোর পাশাপাশি বিশদগুলির জন্য এই প্রশ্নের উত্তর দেখুন:
কীভাবে ফাইল ইনপুট মান সেট করা যায় (যেমন: ফাইলগুলি যখন ড্র্যাগ-ড্রপিং হয়)?

আমি এর মান কীভাবে সেট করতে পারি?

<input type="file" />

3
আমি এখানে এ সম্পর্কে একটি সম্পূর্ণ রেফারেন্সড এবং আপ-টু ডেট (ডিসেম্বর ২০১৩) উত্তর
দিয়েছি:

উত্তর:


525

সুরক্ষার কারণে আপনি পারবেন না।

কল্পনা করুন:

<form name="foo" method="post" enctype="multipart/form-data">
    <input type="file" value="c:/passwords.txt">
</form>
<script>document.foo.submit();</script>

আপনি যে ওয়েবসাইটগুলি ভিজিট করেন সেগুলি এটি করতে সক্ষম হতে চান না, তাই না? =)


আপনি এটা পরিষ্কার করতে পারেন? এটি আমার মনে হয় যে প্রতিবার আমি যখন আবার ঘুরে দেখি তখন ফাইলের নাম মনে পড়ে। Pelase দেখতে stackoverflow.com/questions/41807471/...
Mawg বলেছেন পুনর্বহাল মনিকা

1
আমি সুরক্ষা ইস্যুটি বুঝতে পেরেছি, তবে ব্রাউজারটি কি কোনও বিপজ্জনক স্থানীয় ফাইলপথ এবং ডেটাআরআল এর মতো আরও নিরীহ কিছু মধ্যে পার্থক্য করতে সক্ষম হয় না? হতে পারে এটি একটি পাইপ-স্বপ্ন।
কাপলিনেটর

5
ড্রাগ এন ড্রপ ফাংশন সম্পর্কে কী, ফাইলটিকে ইনপুট ক্ষেত্রে সেট করার কোনও উপায় নেই?
বেদমন্ত

1
@ ওয়েডমেন্ট হ্যাঁ আপনি অন্যান্য উপাদানগুলিতে একটি ড্রাগ / ড্রপ ইভেন্টের মাধ্যমে ফাইলের উপাদানটির মান সেট করতে পারেন। দেখুন programatically ফাইল ইনপুট মান কীভাবে সেট (অর্থাৎ, ড্র্যাগ-ড্রপ ফাইল)?
স্যামুয়েল লিউ

যদি এটি কাজ না করে, তবে .... এই কোড বিভাগটি কীভাবে জানতে পারে যে আমি আমার পাসওয়ার্ডগুলি কোথায় রেখেছি?
হোল্ডঅফহাঙ্গার

129

আপনি পারবেন না।

ফাইল ইনপুটটির মান নির্ধারণের একমাত্র উপায় ব্যবহারকারী দ্বারা একটি ফাইল নির্বাচন করা।

এটি সুরক্ষা কারণে করা হয়। অন্যথায় আপনি একটি জাভাস্ক্রিপ্ট তৈরি করতে সক্ষম হবেন যা স্বয়ংক্রিয়ভাবে ক্লায়েন্টগুলির কম্পিউটার থেকে একটি নির্দিষ্ট ফাইল আপলোড করে।


51

আপনার প্রশ্নের উত্তর নয় (যা অন্যরা উত্তর দিয়েছে), তবে আপনি যদি কোনও আপলোড করা ফাইল ক্ষেত্রের কিছু সম্পাদনা কার্যকারিতা পেতে চান তবে আপনি সম্ভবত যা করতে চান তা হ'ল:

  • এই ফাইলের বর্তমান মানটি কেবল ফাইল নাম বা ইউআরএল, এটি ডাউনলোডের জন্য ক্লিকযোগ্য লিঙ্ক প্রিন্ট করে বা এটি যদি একটি চিত্র হয়: কেবলমাত্র থাম্বনেইল হিসাবে এটি দেখান
  • দ্য <input>একটি নতুন ফাইল আপলোড করার ট্যাগ
  • একটি চেকবাক্স যা চেক করা হলে, বর্তমানে আপলোড করা ফাইলটি মুছে দেয়। নোট করুন যে কোনও 'খালি' ফাইল আপলোড করার উপায় নেই, তাই ক্ষেত্রের মানটি পরিষ্কার করার জন্য আপনার এর মতো কিছু দরকার

1
আমি মনে করি এটি আমার প্রয়োজন। যদি আমি পণ্যের তথ্য সম্পাদনা করতে চাই (পণ্য চিত্রটি পরিবর্তন করতে চাই না) তবে কীভাবে <input type="file" />বিদ্যমান পণ্য চিত্রটিতে সেট করব ? আমি কোনও <img />ট্যাগটিতে বিদ্যমান চিত্রটি প্রদর্শন করতে পারি তবে যখন আমি জমা দেই না তখন পাস হয়ে যায়।
পার্থো 63

37

আপনি পারবেন না। এবং এটি একটি সুরক্ষা ব্যবস্থা। ভাবুন যদি কেউ এমন কোনও জেএস লিখেন যা কিছু সংবেদনশীল ডেটা ফাইলের মধ্যে ফাইলের ইনপুট মান সেট করে?


9

যেমন এখানে অন্য সবাই বলেছেন: আপনি জাভাস্ক্রিপ্ট সহ স্বয়ংক্রিয়ভাবে কোনও ফাইল আপলোড করতে পারবেন না।

যাহোক! আপনি যদি আপনার কোডটিতে (যেমন পাসওয়ার্ড.টেক্সট নয়) প্রেরণ করতে চান এমন তথ্যে যদি অ্যাক্সেস থাকে তবে আপনি এটিকে ব্লব- টাইপ হিসাবে আপলোড করতে পারেন এবং তারপরে এটি ফাইল হিসাবে বিবেচনা করুন।

কি সার্ভার এইজন্য শেষ হবে কেউ আসলে মান সেট করা থেকে আলাদা করে চেনা হতে হবে <input type="file" />। কৌশলটি, শেষ অবধি, সার্ভারের সাহায্যে একটি নতুন এক্সএমএলএইচটিপিআরকেস্ট () শুরু করা ...

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?'});

সুতরাং, আপনি সম্ভবত এটি কি জন্য ব্যবহার করতে পারেন? আমি jpg এর হিসাবে এইচটিএমএল 5 ক্যানভাস উপাদানগুলি আপলোড করার জন্য এটি ব্যবহার করি । এটি ব্যবহারকারীর কোনও file inputউপাদানটি খোলার সমস্যাটি সংরক্ষণ করে , কেবলমাত্র স্থানীয়, ক্যাশেড চিত্র নির্বাচন করার জন্য যা তারা কেবল আকার পরিবর্তন করেছে, পরিবর্তন করেছে ইত্যাদি But তবে এটি কোনও ফাইল টাইপের জন্য কাজ করা উচিত ।


1

1) কোনও ফাইল ইনপুটটিতে ডিফল্ট মানটির সমস্যাটি "সুরক্ষার কারণে সম্পন্ন হয় না", তবে ব্রাউজারগুলি "কোনও যুক্তিসঙ্গত কারণেই এটি বাস্তবায়ন করতে ব্যর্থ হয়": এটি দেখুন গভীর প্রতিবেদনটি দেখুন

2) একটি সহজ সমাধান ফাইল ইনপুট শীর্ষে একটি পাঠ্য ইনপুট ব্যবহার করতে পারেন, এখানে । অবশ্যই ফাইলটি প্রেরণের জন্য আপনার কিছু কোড দরকার, এখন পাঠ্য ইনপুটটির মানটি ব্যবহার করুন এবং ফাইল ইনপুট নয়।

আমার ক্ষেত্রে, এইচটিএ অ্যাপ্লিকেশন করা, এটি কোনও সমস্যা নয়, আমি ফর্মটি মোটেও ব্যবহার করি না।


-4

এইচটিএমএলে সংজ্ঞায়িত করুন:

<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>

-8

আসলে আমরা এটা করতে পারি। আমরা সি # তে ফর্মটোমলিটপার্টপোস্টডেটা লাইব্রেরি ব্যবহার করে ওয়েব ব্রাউজার নিয়ন্ত্রণ ব্যবহার করে ফাইলের মান ডিফল্ট সেট করতে পারি this আমাদের প্রকল্পে এই লাইব্রেরিটি ডাউনলোড করতে এবং অন্তর্ভুক্ত করতে হবে। ওয়েব ব্রাউজার ব্যবহারকারীকে ফর্মের ভিতরে ওয়েব পৃষ্ঠাগুলি নেভিগেট করতে সক্ষম করে। ওয়েব পৃষ্ঠাটি লোড হয়ে গেলে, ওয়েব ব্রাউজার 1_ ডকুমেন্ট কমপ্লিট করা ভিতরে স্ক্রিপ্টটি কার্যকর করা হবে। সুতরাং,

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


2
এটি কোন ভাষার জন্য? এটি জাভাস্ক্রিপ্ট নয়।
জন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.