سؤال

انا إستعملت ملف إدخال HTML بدلاً من FileUpload Control Web Control. لا تسأل لماذا ولكن علي فقط!

لغة البرمجة:

<input type="file" id="image1" class="listUploadAdd" name="ImageAdd1" />

الكود وراء:

Dim ImageAdd1 As String = Request.Form("ImageAdd1").ToString()

لقد تصفحت من "c: /orange.jpg" لتحميل والنتيجة وراء الكود هي مجرد اسم الصورة "Orange.jpg" وليس الكامل "c:/lange.jpg" المطلوب للحصول على الملف من المحلية القيادة ليتم تحميلها.

ما هي أفضل طريقة لالتقاط مسار الصورة الكامل من الكود وراء التحميل على الخادم؟

شكرًا لك.

هل كانت مفيدة؟

المحلول

هل يمكنك إضافة أ runat="server" إلى عنصر الإدخال؟ :) ثم من السهل جدًا تخزين الملف على الخادم الخاص بك

Request.Files("File1").SaveAs("c:\somedir\yourfile.txt")

إذا كنت تريد اسم الملف والمسار الأصلي ، جرب هذا:

Dim filename As string = Request.Files("File1").FileName

لتنزيل الملف دون استخدام أ runat="server" السمة ، يمكنك القيام بذلك:

Dim file = Request.Files("File1")
Dim buf(file.ContentLength) As Byte
file.InputStream.Read(buf, 0, file.ContentLength)
IO.File.WriteAllBytes("C:\somedir\yourfile.txt", buf)

لكن عليك تعيين ملف enctype على عنصر النموذج في صفحة HTML:

<form id="yourform" runat="server" enctype="multipart/form-data">

نصائح أخرى

لقد تصفحت من "c: /orange.jpg" لتحميل والنتيجة وراء الكود هي مجرد اسم الصورة "Orange.jpg" وليس الكامل "c:/lange.jpg" المطلوب للحصول على الملف من المحلية القيادة ليتم تحميلها.

لن تتمكن من سحب الملف من جهاز العميل. عندما تقوم بتطوير برنامجك ، يكون العميل والخادم نفس الجهاز ولكن عند نشره ، سيكون الخادم والعميل آلات مختلفة. عندما ينفذ الرمز وراء (على الخادم) ، إذا حاولت فتح C: Orange.jpg ، فستحاول فتحه من القرص الصلب للخادم. ربما لن يكون هذا الملف موجودًا.

عند تحميل ملف من صفحة ويب ، سيتم نشره على الخادم كجزء من رسالة النشر. يمكنك إخراج الملف من هذا من مجموعة النماذج. لا تحتاج إلى تحويل جهاز التحميل إلى عنصر تحكم ASP.NET ، أو إضافة runat="server" ينسب. طالما أن نشر النموذج الخاص بك ، والذي يحتوي على عنصر الإدخال الذي سيتم إرساله إلى الخادم.

سيتم تخزين محتويات الملف كصفيف بايت في النموذج. يمكنك حفظ مجموعة البايت هذه كملف على القرص الثابت للخادم في مكان ما.

باختصار:

لا تحتاج إلى معرفة المسار إلى الملف على جهاز العميل ، حيث لا يمكنك الوصول إليه على أي حال. استخدم بيانات الملف التي يتم نشرها كجزء من النموذج إرسال بدلاً من ذلك لحفظ نسخة من الملف على الخادم.

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