chrome用type=file獲取圖片路徑并轉base64字符串

?

?

1 html頁面

<div class="col-sm-2" style="height: 200px;margin-top: 14px;">
<input id="photo" name=" " type="file" value="選擇圖片" ?ng-model="photoUrl">
<input type="button" ng-click = "uploadPic()" value="確定" style="margin-top: 150px;margin-left: 10px;"/>
</div>

2 js里面

$scope.uploadPic = function(){
var obj = document.getElementById("photo");
console.log("13:"+obj.value)
if(obj.value){
var file = obj.files[0]

//注意此處,chrome不支持直接獲取文件的絕對路徑,需要把文件放到一個中間地址,然后用js獲取這個中間地址的絕對路徑
var?windowURL?=?window.URL?||?window.webkitURL;??
???var dataURL?=?windowURL.createObjectURL(file);?
console.log($('#img1'))
console.log(dataURL)
?$('#img1').attr('src',dataURL)
var img = document.createElement('img');
img.src = dataURL;

以上是在中間地址放文件的邏輯
var data
img.onload =function() {

//轉base64
data = getBase64Image(img);
console.log("changdu:"+data.length);

一般瀏覽器對提交字符串有大小限制,要限定一下,要不會報錯
if(data.length<1050000){
console.log(data);
$('#img1').attr('src',data)
$scope.pic = {};
$scope.pic.idPark = idPark;
$scope.pic.picture = data;
dataParkSettingAdmin.saveOrUpdateParkPicture(idPark,$scope.pic).success(function(data) {
console.log("shangchuantupian:"+data.result);
})
}else{

app.modalWin.info({title:' ', content:'該圖片不支持上傳' });
}
}
}
}

以下是圖片轉base64字符串的函數
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var dataURL = canvas.toDataURL("image/png");
return dataURL // return dataURL.replace("data:image/png;base64,", "");
}

轉載于:https://www.cnblogs.com/zhaoblog/p/6534299.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456269.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456269.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456269.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python - Django - 中間件 process_exception

process_exception(self, request, exception) 函數有兩個參數&#xff0c;exception 是視圖函數異常產生的 Exception 對象 process_exception 函數的執行順序是按照 settings.py 中設置的中間件的順序的倒序執行 process_exception 函數只在視圖函數中出現異常的時候才執行…

NTV Media Server G3性能測試

Hello&#xff01;大家好&#xff0c;我是資深測試工程師Jackie&#xff0c;今天我來和大家一起對云視睿博的高性能流媒體服務器NTV Media Server G3做一次性能測試。今天測試有一個小目標&#xff0c;那就是驗證在一臺普通的PC機上&#xff0c;NTV Media Server G3的并發能力是…

人生不只是上坡路

從前的自己都是非常順利的&#xff0c;覺得自己有一天一定可以成就一番事業。 可是誰也預料不到這幾年的變化&#xff0c; 似乎人生就要跌落到了谷底&#xff0c; 不知道該如何去面對&#xff0c; 壓力很大、惶恐不安、不知道未來的路該如何去走。 人生不只是上坡路&#xff0c…

Django 時間與時區設置問題

Django 時間與時區設置問題 在Django的配置文件settings.py中&#xff0c;有兩個配置參數是跟時間與時區有關的&#xff0c;分別是TIME_ZONE和USE_TZ 如果USE_TZ設置為True時&#xff0c;Django會使用系統默認設置的時區&#xff0c;即America/Chicago&#xff0c;此時的TIME_…

Oracle+ASM單機環境下,開啟歸檔的最簡單的方法

在ASM單機環境下&#xff0c;開啟歸檔的最簡單的方法。環境&#xff1a;oracle11g 11.2.0.4 登陸sqlplus[oracleudevasm ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 8 18:20:41 2017Copyright (c) 1982, 2013, Oracle. All rights reserved…

【Python】 配置解析ConfigParser 命令行參數解析optparser

ConfigParser ConfigParser包裝了配置文件的讀取和寫入&#xff0c;使得python程序可以更加輕松操作配置文件了。這里的配置文件是指.ini的那種文件&#xff0c;基本格式如下 [section_a] a_key1 a_value1 a_key2 a_value2[section_b] b_key1 b_value1 b_key2 b_value2 b_k…

解決:build_attrs() takes at most 2 arguments (3 given)

1.這個原因是由于captcha版本安裝太低引起的&#xff0c;所以導致register頁面打開報錯 2.解決辦法就是安裝更高級版本的captcha 解決pip install django-simple-captcha0.5.5

docker registry v2與harbor的搭建

docker的倉庫 1 registry的安裝 docker的倉庫我們可以使用docker自帶的registry,安裝起來很簡單&#xff0c;但是可能有點使用起來不是很方便。沒有圖形化。 開始安裝 1 使用鏡像加速器 2 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://dc945b6d.m…

在windows下安裝Redis

一、下載windows版本的Redis 由于官網上沒有windows版的下載地址&#xff0c;所以需要下載windows版本的Redis有以下兩個地址&#xff1a; 博主的csdn資源地址&#xff1a;http://download.csdn.net/detail/u010608551/9778240 github下載地址&#xff1a;https://github.com/M…

Django REST framework【學習內容】

快速入門 我們將創建一個簡單的允許管理員用戶查看和編輯系統中的用戶和組的API。 項目設置 創建一個名為 tutorial 的新django項目&#xff0c;然后啟動一個名為 quickstart 的新app。 # 創建項目目錄 mkdir tutorial cd tutorial# 創建一個virtualenv來隔離我們本地的包依…

DotNetCore跨平臺~發布腳本PowerShell的設計

回到目錄 這幾天對PS情有獨忠&#xff0c;被它的強大功能所希引&#xff0c;它可以快速部署&#xff0c;快速發布&#xff0c;將一些連帶的動作一次的完成&#xff0c;挺方便&#xff0c;類似于早期的bat文件&#xff0c;也像linux平臺的bash腳本&#xff0c;但功能上&#xff…

解決: 'Cannot call `.is_valid()` as no `data=` keyword argument was ' AssertionError: Cannot call `

#注冊 def add_person(request):p_name request.POST.get("p_name")p_password request.POST.get("p_password")person_data {"p_name": p_name,"p_password": p_password,}print(person_data)serializer PersonSerializer(person…

軟件與程序

一、Java的起源 最初是為家用電器設計的&#xff0c;因為其特點適合于internet&#xff0c; 于是通過internet成為一種計算語言&#xff0c;一個平臺&#xff0c;一個網絡計算的架構。 二、Java平臺分類 ①JavaSE適用于普通PC及筆記本電腦&#xff0c;為其他JAVA程序的開發和運…

Django使用n內置模塊發送HTML格式的郵件

def send(request):# subject "小伙子很帥"# message "不禁夸啊"# send_mail(subject,message,"18332191389163.com",["18332191389163.com"])# return HttpResponse("ok")from django.core.mail import EmailMultiAltern…

EDM營銷之如何使郵件列表更加有效

營銷轉化往往是營銷人員專攻的必修課&#xff0c;大數據時代&#xff0c;只有真實有效的活躍用戶數據&#xff0c;才能進一步促進轉化。但仍然有想走捷徑的企業會選擇通過購買來獲取用戶數據&#xff0c;不僅數據質量不高&#xff0c;還會降低自身信譽等級。本次Focussend從購買…

spring用的很開心的標簽(隨時增加)

1Scheduled定時任務標簽&#xff0c;cron用表達式&#xff0c;或者其他幾種方式&#xff0c;方便不能說。使用再方法智商&#xff0c;不能設置范圍域。 2PropertySource定義在整個class文件上&#xff0c;整個class中可以直接用表達式獲取properties的內容。 3Value 定義在變量…

Flask-DebugToolbar的配置

該擴展為 Flask 應用程序添加了一個包含有用的調試信息的工具欄。 安裝 簡單地使用 pip 來安裝: $ pip install flask-debugtoolbar用法 設置調試工具欄是簡單的: from flask import Flask from flask_debugtoolbar import DebugToolbarExtensionapp Flask(__name__)# the…

微信第三方登錄

微信第三方登錄&#xff1a; 公眾平臺以access_token為接口調用憑據&#xff0c;來調用接口&#xff0c;所有接口的調用需要先獲取access_token&#xff1b; 網頁授權獲取用戶基本信息&#xff1a;通過該接口&#xff0c;可以獲取用戶的基本信息&#xff08;獲取用戶的OpenID是…

MVC 中Simditor上傳本地圖片

1.引用樣式和js文件 <link href"~/Content/scripts/plugins/simditor/css/simditor.css" rel"stylesheet" /><script src"~/Content/scripts/plugins/simditor/js/simditor.js"></script> 2.初始化Simditor var editor null;…

在pycharm中自定義模板代碼,快速輸出固定代碼塊

pycharm中有時會經常輸出固定一段代碼,為避免每次重復輸入,可以自定義一段模板代碼,請看以下圖教程: 1. 點擊 file 里面的 setting 2. 在搜索框輸入live,就會顯示出Live Templates, 點擊后邊的加號, 點擊 Live Template 3. 選擇設置的語言, 點擊下圖的Define, 設置要設置…