2016-05-07 17 views
11

Tôi mới vào Ionic và tôi đang cố gắng để tải lên một hình ảnh chụp từ máy ảnh được lưu trữ trong hệ thống tập tin Android:Ionic Cordova FileUpload lỗi: Không được phép tải tài nguyên địa phương

var ft = new FileTransfer(); 
console.log('Uploading: ' + fileURL); 
ft.upload(fileURL, 
    encodeURI("http://192.168.192.62:3000/api/meals/picture"), 
    pictureUploaded, 
    function(error) { 
    console.err(error); 
    $ionicLoading.show({template: 'Ooops error uploading picture...'}); 
    setTimeout(function(){$ionicLoading.hide();}, 3000); 
    }, 
    options); 

var pictureUploaded = function() { 
    console.log('uploaded!'); 
    $ionicLoading.hide(); 
}; 

fileUrl được trỏ đến một tồn tại image: file: ///data/data/com.ionicframework.nutrilifemobile664547/files/Q2AtO1462636767466.jpg

Trong chrome: // inspect/# devices console Tôi gặp lỗi sau và có vẻ như là do lỗi FileOptions cũng không được gửi đúng, đây là lỗi (Không được phép tải tài nguyên cục bộ):

enter image description here

Cordova phiên bản: 6.1.1 Ionic phiên bản: 1.7.14

Bất kỳ ý tưởng? Tôi đã bị mắc kẹt với lỗi này trong một thời gian.

+0

Bạn có thể xem tệp bằng cách sử dụng bất kỳ người khám phá tệp nào không? Trong nhiều trường hợp, dữ liệu cụ thể của ứng dụng không thể truy cập được bên ngoài ứng dụng. Bạn có thể thử lưu trữ hình ảnh externalRootDirectory và thử một lần không? – Gandhi

+0

@Marcos, bạn đã giải quyết được vấn đề này chưa? – BohdanZ

+5

@BohdanZ - Xin chào, tôi thực sự đã phát hiện ra rằng điều này xảy ra khi sử dụng tùy chọn tải xuống tức là - "ionic run android -lc". Trong trường hợp này trông giống như plugin làm cho việc tìm kiếm trong hệ thống tập tin thực tế của máy tính và không phải là thiết bị .. vì vậy để tránh rằng tôi chỉ chạy nó mà không có tùy chọn -lc ... mà không phải là tối ưu và chúng tôi rời chrome kiểm tra hỗ trợ nhưng tôi không thể tìm thấy một cách bỏ qua vấn đề bằng cách sử dụng tùy chọn -lc. –

Trả lời

20

Điều này xảy ra khi bạn sử dụng tùy chọn "tải gan" với Ionic.

Thử chạy ở chế độ bình thường

+5

nếu bạn kiểm tra các nhận xét về câu hỏi của mình ở trên, bạn sẽ thấy rằng chúng tôi đã kết luận điều này, vấn đề là đây không phải là câu trả lời đúng hoặc khắc phục sự cố, tôi muốn làm việc này và vẫn có thể sử dụng đúng cách -lc tùy chọn và/hoặc có thể sử dụng kiểm tra chrome. –

+0

cảm ơn, tôi có cùng một vấn đề và hoạt động – Bullgod

0

Nó có thể là quá muộn nhưng ... bạn có thể chuyển đổi con đường có nguồn gốc từ blob sử dụng tập tin sau đó chuyển đổi blob để URL sử dụng URL.createObjectURL (blob) và đi qua/thiết như src để phần tử html của bạn. Điều này là không cần thiết cho môi trường sản xuất nhưng bạn có thể sử dụng nó để phát triển với -lc. Nó có thể làm việc

0

Really Simple, tôi đã giải quyết nó với cordova chạy android

Các vấn đề liên quan