نمایش نتایج 1 تا 5 از 5

نام تاپیک: آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

  1. #1

    آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

    مشکل آپلود کردن بزرگترین مشکل برنامه نویسی من بوده.
    البته در حین کار با asp classic
    نیک آگاه هستم که تقریبا مشکل اکثریت برنامه نویس های کلاسیک کار هستش
    یک سری کدهایی داخل نت هست که برای اپلود فایل با asp classic استفاده میشه
    ولی هیچ کدام آژاکسی نیستن.
    میخوام هم جاوااسکریپت پیشرفته رو بهتون آموزش بدم هم استفاده اون در آپلود کردن فایل با این زبان برنامه نویسی شیرین .
    باور بفرمایید سالها با دات نت کار کردم .
    ولی جا داره تنفر عمیق و تاسف فراوانمو از بابت این زبان شی گرای سنگین ابراز کنم .
    تاسف از این بابت که چرا دات نت . چرا همین کلاسیکو توسعه ندادن کمی براش ابزار تولید نکردن که امثال من سالها زحمت بکشن تا یک چیز روتین که در پی اچ پی و دات نت و خیلی از زبانهای دیگه موجوده را تولید کنیم.
    برای ما کلاسیک بازها این اوج ارزو باشه.

    خیلی ساده :
    کد HTML:
    <input type="button" onclick="st()" value="Send Pic Base64" ><input type="button" onclick="pdf()" value="Open PDF OR TExt" ><img id="MYPIC" /><div id="TypeSize" ></div>
    این کد html برنامه ما بودکه در خط بالا نوشته شد

    و حالا کد های جاوا اسکریپتی داستان







    فایل سمت کلاینت


    function pdf(){
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '4.pdf', true);
    xhr.responseType = 'blob';

    xhr.onload = function(e) {
    if (this.status == 200) {
    // get binary data as a response
    var blob = this.response;
    var TypeSize = document.getElementById('TypeSize');
    TypeSize.innerHTML=" size : "+blob.size;
    TypeSize.innerHTML= TypeSize.innerHTML + " Type : "+blob.type;
    var reader = new FileReader();
    //reader.readAsText(blob);
    // reader.addEventListener("loadend", function(e){//alert();
    // TypeSize.innerHTML = TypeSize.innerHTML + "<br /> Matn File : " +e.srcElement.result;//prints a string
    // Aj("Fnews.pdf",e.srcElement.result);
    //});
    var base64data="" ;
    reader.readAsDataURL(blob);
    //alert();
    reader.onloadend = function() {
    base64data = reader.result;
    Aj("Fnews.pdf",base64data);
    //alert(reader.result);
    }

    }
    };

    xhr.send();
    }
    function Aj(namefile,val)
    {

    var da = new Date();
    var Randd= da.getMilliseconds();
    if (window.XMLHttpRequest)
    {
    xmlhttp=new XMLHttpRequest();
    }
    else
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert();
    var strArray=xmlhttp.responseText.split('^');
    alert(strArray[0]);

    }
    }
    val=val.replace(/;/gi, "^");
    alert(val);
    xmlhttp.open("POST","AjaXULodFle.asp?Randd="+Randd +"&FileName="+namefile,true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("bas="+encodeURIComponent(val));


    }





    و در پایان استفاده از فایل با پسوند asp به عنوان کد اپلود کننده و همان فایل فراخوانی شده در قسمت آژاکس

    <% @ Language=VBScript CodePage = 65001%>
    <%


    'response.write "^ok"+Request("bas")
    Function SaveToBase64 (base64String)
    Set Doc = Server.CreateObject("MSXML2.DomDocument")
    Set nodeB64 = Doc.CreateElement("b64")
    nodeB64.DataType = "bin.base64"
    nodeB64.Text = Mid(base64String, InStr(base64String, ",") + 1)

    dim bStream
    set bStream = server.CreateObject("ADODB.stream")
    bStream.type = 1
    call bStream.Open()
    call bStream.Write( nodeB64.NodeTypedValue )
    call bStream.SaveToFile( Server.MapPath(".") +""+request.querystring("FileName"), 2 )
    call bStream.close()
    set bStream = nothing
    end function


    SaveToBase64(Replace(request("bas"),"^",";"))
    %>

  2. #2

    نقل قول: آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

    این کد یادم رفت.
    نمایش آژاکسی یک تصویر.

    function st(){
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'images/docs.png', true);
    xhr.responseType = 'blob';

    xhr.onload = function(e) {
    if (this.status == 200) {
    // get binary data as a response
    var blob = this.response;
    var TypeSize = document.getElementById('TypeSize');
    TypeSize.innerHTML=" size : "+blob.size;
    TypeSize.innerHTML= TypeSize.innerHTML + " Type : "+blob.type;
    var reader = new FileReader();
    reader.readAsDataURL(blob);
    reader.onloadend = function() {
    base64data = reader.result;
    var image = document.getElementById('MYPIC');
    image.src = base64data;
    }
    }
    };

    xhr.send();
    }

  3. #3

    نقل قول: آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

    تو این تایپیک به دوتا سوال مهم که تقریبا تو فروم های خارجی هم پاسخ مناسبی داده نشده پاسخ دادم.
    1- اپلود فایل اونم آژاکسی با زبان کلاسیک و اسکریپت نویسی جاوا اسکریپت
    2- امکان ارسال متن بلند از طریق آژاکس
    مورد دوم مشکلی بود که حین ارسال یه متن بلند مثلا ckEditor میخواستید با آزاکس کلاسیک یه متن بلند رو ارسال کنید . محدودیت های کوئری استرینگ کار شما رو انجام نمیداد.
    اینجا آژاکس کلاسیک رو با متد Post فراخوانی کردم. خوب توجه کنید به کد ها

    xmlhttp.open("POST","AjaXULodFle.asp?Randd="+Randd +"&FileName="+namefile,true);
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.send("bas="+encodeURIComponent(val));

  4. #4

    نقل قول: آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

    تکنیک کلی رو یک بار توضیح میدم باقی مسائل در قالب سوالاتی که میکنید توضیح میدم.
    ابتدا فایل رو به صورت ثابت اسمشو اوردم که شما میتونید پاس بدید ادرس و مسیرو ، به blob تبدیل کردم . سپس اونه base64 تبدیل کردم
    در نهایت پاسش دادم به صفه کلاسیک به صورت آزاکسی.
    در نهایت base64 رو آپلود در مسیر جاری سرور کردم که برنامه شما در اون مکان هستش

  5. #5

    نقل قول: آپلود فایل:کار با Blob جهت انتقال فایل به سرور (آپلود پی دی اف و تصویر و فایل تسکت و...)

    این کد زیرو تلفیق کنید با کدهای بالا تا کارتون داینامیک تر بشه.
    چون اگر توجه کرده باشید در کد بالا من مسیر فایل و تصویر رو داینامیک ثابت گرفته بودم.
    ولی این کد یک فایل بروزر هستش که از شما مثلا مسیر عکس رو میگیره و خروجی به شما هم تصویر عکس رو نمایش میده هم کد بیس 64 رو پس میده.
    یعنی میتونید کلا blob رو هم دور بزنید و مستقیم از همین کد استفاده کرده و با متد پست آزاکس به فایل کلاسیکی که بالا نوشتم پاسش بدید و در مسیر سرور آپلودش کنید

    function previewFile() {
    var base64data ;
    var image = document.getElementById('MYPIC');
    var file = document.querySelector('input[type=file]').files[0];
    var reader = new FileReader();

    // be-jaye reder-onload 2 khat payin tar mishod az in coe estefade kard :: reader.addEventListener("load", function () {MYPIC.src = reader.result;}, false);
    if (file) {
    reader.readAsDataURL(file);
    reader.onloadend = function() {
    base64data = reader.result;
    alert(base64data );
    image.src = base64data;
    }
    }
    }




    <input type="file" onchange="previewFile()"><br>
    <img id="MYPIC" >

تاپیک های مشابه

  1. مبتدی: اشکال در آپلود پی دی اف
    نوشته شده توسط clonner در بخش jQuery
    پاسخ: 2
    آخرین پست: جمعه 19 تیر 1394, 23:26 عصر
  2. پاسخ: 0
    آخرین پست: شنبه 07 دی 1392, 00:39 صبح
  3. پاسخ: 4
    آخرین پست: سه شنبه 02 آذر 1389, 20:52 عصر
  4. سوال: کار با اسکنر و انتقال عکس به PictureBox
    نوشته شده توسط ehsan21 در بخش VB.NET
    پاسخ: 5
    آخرین پست: جمعه 22 آبان 1388, 16:12 عصر
  5. چطور میشه یه فایل پی دی اف رو با دات نت درست کرد؟
    نوشته شده توسط gh_fereydonpoor در بخش VB.NET
    پاسخ: 6
    آخرین پست: سه شنبه 21 بهمن 1382, 08:54 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •