Proksidən keçirərək yükləyərkən binar fayl baytlarını qoruyun
Faylı mətn kimi deşifrə edib ASCII ilə yenidən qurmaq əvəzinə proksidən keçirərək yükləyərkən fayl baytlarını və bayt uzunluqlarını qoruyun.
Binar fayl HTTP müştərisinə bayt kimi çatmalıdır. Onu mətn oxuyucusu ilə oxuyub nəticələnən sətri ASCII ilə yenidən kodlaşdırmaq proksi heç nə almadan əvvəl dəyərləri dəyişə bilər. Kiçik mətn nümunəsinin işləməsi bu yolu şəkil, arxiv və ya sənəd üçün təhlükəsiz etmir.
Mövcud .NET yükləmə yolunda bu çevirməni binar gövdə mənbəyi ilə əvəz edin:
using var file = File.OpenRead(path);
using var content = new StreamContent(file);Məzmunu tətbiqin konfiqurasiya edilmiş HTTP yükləməsindən keçirin; fraqment gövdə mənbəyini qurur, mövcud müştəri isə metod, təyinat, proksi və ömür idarəetməsini hələ də öz üzərinə götürür.
Köhnə sətrin simvol sayından hesablanmış istənilən Content-Length-i silin. Bu sahə oktetləri ölçür. Simvol sayını fərqli kodlaşdırılmış buferlə cütləşdirmək əvəzinə HTTP kitabxanasının çərçivəni gövdə təsvirindən qurmasına icazə verin.
Qəsdən mətn yükləməsi üçün kodlaşdırmanı açıq şəkildə seçin və tələb olunan uzunluğu göndərilən baytlardan çıxarın. Bu mətn formatı qərarı ixtiyari fayllara tətbiq edilməməlidir.
Köçürülən faylı etibarlı gözlənilən dəyərlə müqayisə edin. HTTP uğuru yükləmə əməliyyatının həmin qatda tamamlandığını təsdiqləyir; əvvəlki mətn çevirməsinin orijinal baytları qoruduğunu göstərə bilməz.