當前位置:首頁 » 文件管理 » html5ajax圖片上傳

html5ajax圖片上傳

發布時間: 2022-12-26 09:28:19

⑴ ajax 不能傳輸圖片數據嗎

ajax不是新技術,是多種技術的雜種,iframe,flash都可以上傳文件,所以說,ajax是可以上傳文件滴!

⑵ jquery ajax多圖上傳顯示怎麼寫

首先我們在頁面上放置個上傳按鈕,使用POST提交到ajax.php。#ul_pics 用來顯示上傳完畢後的圖片。
<a class="btn" id="btn">上傳圖片</a> 最大500KB,支持jpg,gif,png格式。
<ul id="ul_pics" class="ul_pics clearfix"></ul>
接著,載入jQuery.js和plupload.full.min.js插件。
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="plupload/plupload.full.min.js"></script>
當點擊按鈕「上傳圖片」後,彈出選擇文件對話框,按 "ctrl" 選擇多圖片上傳。然後調用 uploader.start() 方法,開始上傳。上傳中間過程我們可以用 UploadProgress 方法來顯示文件進度,最後通過 FileUploaded 來顯示對應的圖片。通過瀏覽器控制台,會發現上傳一張圖片,會向後台ajax.php請求一次。
var uploader = new plupload.Uploader({ //創建實例的構造方法
runtimes: 'html5,flash,silverlight,html4',
//上傳插件初始化選用那種方式的優先順序順序
browse_button: 'btn',
// 上傳按鈕
url: "ajax.php",
//遠程上傳地址
flash_swf_url: 'plupload/Moxie.swf',
//flash文件地址
silverlight_xap_url: 'plupload/Moxie.xap',
//silverlight文件地址
filters: {
max_file_size: '500kb',
//最大上傳文件大小(格式100b, 10kb, 10mb, 1gb)
mime_types: [ //允許文件上傳類型
{
title: "files",
extensions: "jpg,png,gif"
}]
},
multi_selection: true,
//true:ctrl多文件上傳, false 單文件上傳
init: {
FilesAdded: function(up, files) { //文件上傳前
if ($("#ul_pics").children("li").length > 30) {
alert("您上傳的圖片太多了!");
uploader.destroy();
} else {
var li = '';
plupload.each(files,
function(file) { //遍歷文件
li += "<li id='" + file['id'] + "'><div class='progress'><span class='bar'></span><span class='percent'>0%</span></div></li>";
});
$("#ul_pics").append(li);
uploader.start();
}
},
UploadProgress: function(up, file) { //上傳中,顯示進度條
$("#" + file.id).find('.bar').css({
"width": file.percent + "%"
}).find(".percent").text(file.percent + "%");
},
FileUploaded: function(up, file, info) { //文件上傳成功的時候觸發
var data = JSON.parse(info.response);
$("#" + file.id).html("<div class='img'><img src='" + data.pic + "'/></div><p>" + data.name + "</p>");
},
Error: function(up, err) { //上傳出錯的時候觸發
alert(err.message);
}
}
});
uploader.init();

⑶ HTML5 做的移動 web app 怎樣實現從本地上傳圖片

當然可以,不過只能從相冊里傳

⑷ 如何使用html5實現拍照上傳應用

單純HTML5沒法做 需要後台技術 你可以看下關於.NET JSP PHP 最新的NODEJS
必定有很成熟的調用攝像頭拍照的介面或庫。
你可能需要系統學習的有
HTML5
CSS3
JAVASCRIPT JQUERY等
選擇一項你喜歡的後台語言。

⑸ 基於HTML5的多圖Ajax上傳的php後台接收並獲取圖片寬高等信息

//但是為什麼我用file_exists()判斷文件是否存在時,得到的結果卻是不存在呢
這句話後面加一句
$file='../uploads/' . $file;

你都把文件存成這個文件了 還用原來的文件名判斷能行嗎
後面的錯誤也是一樣的

也可以直接把後面兩個$file改掉
if(!file_exists('../uploads/' . $file)){

$src_info = @getimagesize('../uploads/' . $file);

⑹ 如何使用HTML5實現利用攝像頭拍照上傳功能

1、 視頻流

HTML5 的 The Media Capture(媒體捕捉) API 提供了對攝像頭的可編程訪問,用戶可以直接用
getUserMedia(請注意目前僅Chrome和Opera支持)獲得攝像頭提供的視頻流。我們需要做的是添加一個HTML5 的 Video
標簽,並將從攝像頭獲得的視頻作為這個標簽的輸入來源。

var video_element=document.getElementById(『video』);
if(navigator.getUserMedia){ // opera應使用opera.getUserMedianow
navigator.getUserMedia(『video』,success,error); //success是回調函數,當然你也可以直接在此寫一個匿名函數
}
function success(stream){
video_element.src=stream;
}

此時,video 標簽內將顯示動態的攝像視頻流。下面需要進行拍照了。

2、 拍照

拍照是採用HTML5的Canvas功能,實時捕獲Video標簽的內容,因為Video元素可以作為Canvas圖像的輸入,所以這一點很好實現。主要代碼如下:

var canvas=document.createElement(『canvas』); //動態創建畫布對象
var ctx=canvas.getContext(』2d』);
var cw=vw,ch=vh;
ctx.fillStyle=」#ffffff」;
ctx.fillRect(0,0,cw,ch);
ctx.drawImage(video_element,0,0,cw,ch,0,0,vw,vh); //將video對象內指定的區域捕捉繪制到畫布上指定的區域,可進行不等大不等位的繪制。
document.body.append(canvas);

3、 圖片獲取

從Canvas獲取圖片數據的核心思路是用canvas的toDataURL將Canvas的數據轉換為base64位編碼的PNG圖像,類似於「data:image/png;base64,xxxxx」的格式。

var imgData=canvas.toDataURL(「image/png」);

這樣,imgData變數就存儲了一長串的字元數據內容,表示的就是一個PNG圖像的base64編碼。因為真正的圖像數據是base64編碼逗號之後的部分,所以要讓實際伺服器收的圖像數據應該是這部分,我們可以用兩種辦法來獲取。

第一種:是在前端截取22位以後的字元串作為圖像數據,例如:

var data=imgData.substr(22);

如果要在上傳前獲取圖片的大小,可以使用:

var length=atob(data).length; //atob 可解碼用base-64解碼的字串

第二種:是在後端獲取傳輸的數據後用後台語言截取22位以後的字元串(也就是在前台略過上面這步直接上傳)。例如PHP里:

$image=base64_decode(str_replace(『data:image/jpeg;base64,』,」,$data);

4、 圖片上傳

在前端可以使用Ajax將上面獲得的圖片數據上傳到後台腳本。例如使用jQuery時可以用:

$.post(『upload.php』,{『data』:data});

在後台我們用PHP腳本接收數據並存儲為圖片。

function convert_data($data){
$image=base64_decode(str_replace(『data:image/jpeg;base64,』,」,$data);
save_to_file($image);
}
function save_to_file($image){
$fp=fopen($filename,』w');
fwrite($fp,$image);
fclose($fp);
}

⑺ Html5移動端上傳圖片並裁剪 - Clipic.js

Clipic.js插件可以為移動端 (僅支持移動端) 提供頭像上傳並裁剪成指定尺寸,用原生js開發的,輕量級,包含html跟css,不到8kb。點此鏈接體驗: https://teojs.github.io/clipic/

https://github.com/teojs/clipic

參數說明

width:Number (默認:500) – 裁剪寬度
height:Number (默認:500) – 裁剪高度
ratio:Number (可選) – 裁剪的比例,當傳入ratio時width/height將無效
src:String (必傳) – 需要裁剪的圖片,可以是圖片鏈接,或者 base64
type:String (默認:jpeg) – 裁剪後圖片的類型,僅支持 jpeg/png 兩種
quality:Number (默認:0.9) – 壓縮質量
buttonText:Array (默認:[『取消』, 『重置』, 『完成』]) – 底部三個按鈕文本

http://bbs.itying.com/topic/5cb17892c6a71b10bcef96b0

⑻ 怎麼用html5或js調用手機的攝像頭拍照上傳以及調用手機相冊選取照片

1、實現頭部的方法代碼。

注意事項:

JavaScript是一種屬於網路的腳本語言,已經被廣泛用於Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

⑼ 圖片拍照上傳解決方案

微信內置瀏覽器,和一些主流瀏覽器支持調用攝像頭,但也有很多不支持調用攝像頭,僅支持相冊。
如果是WebView中,就需要客戶端支持了,android和ios的許可權也是問題。

formData 簡介

簡單的說就是:通過formData,我們可以用ajax方式來發送表單數據;以前上傳圖片是需要用form表單提交的。

我們知道瀏覽器默認顯示的文件上傳按鈕是很醜的,通常UI都會對上傳按鈕進行設計。有以下幾種方案來寫樣式。

弊端:

通過ref獲取上傳按鈕。

ref方式

event.target方式

坑:

FileReader 簡介

通過 readAsDataURL() ,在讀取操作完成後,result屬性中將包含一個data:URL格式的字元串以表示所讀取文件的內容。

base64字元串

兼容性

我在safari中測試,發現是支持的。

URL.createObjectURL 簡介

通過URL.createObjectURL()創建一個URL對象,這個URL對象表示指定的file對象或Blob對象。

兼容性

張鑫旭的文章: HTML5 file API加canvas實現圖片前端JS壓縮並上傳

張鑫旭的文章: 理解DOMString、Document、FormData、Blob、File、ArrayBuffer數據類型

使用Camera API
張鑫旭

⑽ jquery ajax上傳圖片問題

現在基本上沒有真正的AJAX圖片上傳,你想多了
都是偽AJAX上傳
但是如果是HTML5,倒是有可能,使html5的 canvas,可以把圖片序例化成base64字元串,把這個字元串傳到伺服器,處理一下,再保存就OK了,

我想知道你直接ajax怎麼傳,把你本地路徑傳過去嗎~~~~~
肯定是不行的

熱點內容
電腦伺服器響應 發布:2025-08-22 13:28:07 瀏覽:988
彩虹島北部1腳本 發布:2025-08-22 13:28:06 瀏覽:934
突襲風暴源碼 發布:2025-08-22 13:03:28 瀏覽:210
海康威視碼流加密 發布:2025-08-22 12:53:05 瀏覽:869
sqlserver2005無法連接 發布:2025-08-22 12:46:24 瀏覽:502
簡單的宏程序編程 發布:2025-08-22 12:45:38 瀏覽:469
圖片網站php源碼 發布:2025-08-22 12:37:50 瀏覽:35
sqlserver生成腳本 發布:2025-08-22 12:37:38 瀏覽:530
客戶機如何上傳資源給伺服器 發布:2025-08-22 12:36:11 瀏覽:521
存儲元數據伺服器是什麼 發布:2025-08-22 12:31:32 瀏覽:453