سؤال

أنا أستخدم نانوغرام تدفق لتحميل الملفات في بلدي أنغولارجس التطبيق.أنا قادرة على حفظ البيانات بنجاح جنبا إلى جنب مع تحميل ملفات متعددة عبر نانوغرام التدفق.ومع ذلك ، عند الاستعلام عن البيانات والحصول عليها عبر جسون ، لست متأكدا من كيفية إضافة الملفات إلى كائن نغ تدفق لكل صف.كل ملف هو قاعدة 64 المشفرة في سلسلة جسون.

للتوضيح ، أحصل على كل بئر ولكل بئر اسم وموقع وتصريح وما إلى ذلك.وصور متعددة.يتم ملء جميع سمات البئر بنجاح في دوم باستثناء الصور.

أتش تي أم أل:

...
<div flow-init flow-name="well.flow">
    <span class="btn" flow-btn flow-attrs="{accept:'image/*'}">Upload File</span>

    <table>
        <tr ng-repeat="file in well.flow.files">
            <td>{{ $index+1 }}</td>
            <td>{{ file.name }}</td>
            <td>{{ file.msg }}</td>
            <td><span ng-click="file.cancel()"><i class="icon-remove"></i></span></td>
        </tr>
    </table>
</div>

داخل وحدة تحكم أنغولارجس:

wellsFactory.getData($scope.wellsParams).then(function(data){
        angular.forEach(data.wells, function(wells, wKey){

            if(wells.files){
                var list = [];
                angular.forEach(wells.files, function(files, fKey){

                    var binaryFile = atob(files.file);
                    var byteNumbers = new Array(binaryFile.length);
                    for (var i = 0; i < binaryFile.length; i++) {
                        byteNumbers[i] = binaryFile.charCodeAt(i);
                    }
                    var byteArray = new Uint8Array(byteNumbers);
                    var blob = new Blob([byteArray.buffer], {type: "image/png"});

                    list[fKey] = blob;
                });
            /* Add blob files to wells ng-flow  */
            data.wells[wKey].flow.files = list; /* breaks */
            //** How do I add ng-flow files? **//
            }
        });

        $scope.wells = data.wells;
    });

لقد اختبرت بنجاح بيانات الناتج جسون بيس 64 لملفات الصور ، حتى بعد تعيينها كنقاط.

/* Test Each File (within foreach) */
...
var reader = new FileReader();
reader.onload = function(e){
    console.log(e.target.result);
};
reader.readAsDataURL(blob);
...

كيف يمكنني تحميل ملفات الصور القائمة على النقطة بشكل صحيح في كائن نانوغرام تدفق لكل صف?

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

المحلول

إذا كنت تريد إضافة ملفات جديدة للتدفق ، فاستخدم الطريقة الحالية flow.addFile(file).

var blob = new Blob(['a'], {type: "image/png"});
blob.name = 'file.png';
flow.addFile(blob);

إذا كنت تريد مسح flow.files, ، استخدم flow.cancel().

ملاحظة: flow.files ليست مجموعة من النقط ، بل هي مجموعة من FlowFile https://github.com/flowjs/flow.js#flowfile

النقطة يمكن الوصول إليها مع file الملكية (flow.files[0].file).

نصائح أخرى

للحصول على تطبيق القضبان الخاصة بي، في إجراء التحرير الذي أردت تحميل صوري الحالية.regist_images هو كائن JSON لصوري السابقة.استدعاء AddFile يدعو جميع عمليات الاسترجاعات وحاول تحميل ملفي الموجود بالفعل على الخادم.لتخطي رد الاتصال والسقالة فقط بعض العناصر النائبة:

giveacodicetagpre.

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