js獲取上傳的圖片
⑴ js如何獲取上傳的圖片的名稱
<scripttype="text/javascript">
//定義函數創建XMLHTTPRequest
functioncreateXHR()
{
returnnewXMLHttpRequest();
}
varxhr;
functionsendRequest()
{
//1創建XMLHTTPRequest對象
xhr=createXHR();
//2對象xhr進行初始化
vardate=newDate();
varuname=document.myform.uname.value;
xhr.open("GET",
"ajaxServlet?imageName="+imageName+"&t="+date.getTime(),
true);
//3設置回調函數(會被自動調用,由系統觸發相應的事件調用)
xhr.onreadystatechange=callback;
//4發送請求
xhr.send(null);
}
//獲得響應的結果,並進行處理。
functioncallback()
{
//alert(xhr.readyState);
if(xhr.readyState==4&&xhr.status==200)
{
//獲得伺服器響應給客戶端的數據
varresult=xhr.responseText;
alert(result);
}
}
</script>
⑵ 怎麼用js獲取上傳文件的完整路徑
file是一種特殊的input,不能被賦值,也不能被javascript取值,只能隨表單提交,而且隨表單提交的也是file路徑所指向的文件本身。
這是瀏覽器安全原因所限制的,如果可以取值和賦值的話,那麼javascript就可以隨意獲取你電腦上的文件了,這是非常危險的
⑶ 如何用JS得到火狐瀏覽器中file的上傳圖片路徑
一般是無法用JS獲取真實的圖片路徑的,火狐瀏覽器中一般只會顯示fake路徑。
這是為了保護用戶隱私。
⑷ 用javascript顯示上傳的圖片
在瀏覽器中顯示本地圖片:
<img src="file:///c:1.jpg"/>
這個 只有IE6支持,
全兼容的提交前預覽,
只能用AJAX偷偷的提交到 伺服器 再返回個http:地址, 或flash什麼的了。
⑸ 用javaScript能獲取客戶端的圖片,並上傳到伺服器嗎
理論上是不行,但是現在有一種技術叫做ajax,通過JS和程序的配合,是可以達到這種效果的,不過做起來比較麻煩一點
⑹ java或js怎麼獲取上傳後的圖片呢在界面<img src=""/>要怎麼設置呢誰能幫我看下
上傳用本地地址 查看用網路地址
你上傳保留的位置在tomcat的項目下。
webapps/文件夾/文件
然後訪問的時候用
http://ip:埠/項目名/文件夾/文件
src填這個就行了
⑺ 如何用js怎麼獲取到圖片的相對路徑
javascript中img.src屬性可以獲取到圖片的完整路徑, 相對路徑要通過與相對位置計算得出。計算方法:
先要明確自己的相對位置在哪,這個是需要人為指定的。
核心代碼如下:
var res=document.getElementById("img").src;
var root_href='根目錄路徑';
res=document.getElementById("img").src.replace(root_href,'');
用jquery方法
var res=$("#img").attr("src");
res=res.substring(res.indexOf("根")+2);
更多關於在上傳文件的過程得到完整路徑的方法請參考如下:
file.select();
var res=document.selection.createRange().text;
var res=file.files.item(0).getAsDataURL();
var res=file.value
⑻ js中動態添加的Input file 控制項,我怎麼獲取到它上傳的圖片呢請教各位大神!
方法一:你可以把你上傳的圖片,放到資料庫中的某個表中,然後,你查詢表獲得;
方法二:你上傳圖片成功以後,返回jsp 一個上傳圖片放置的路徑,你把這個路徑setValue到
<input id="tee" type="hidden"/>
通過$("#tee").val()獲得路徑,通過ajax,在後台通過url獲得圖片;
⑼ 你好,我用webuploader.html5only.min.js實現批量圖片上傳,我該怎麼在action中獲取上傳的那些文件呢
1.1 分片、並發
分片與並發結合,將一個大文件分割成多塊,並發上傳,極大地提高大文件的上傳速度。
當網路問題導致傳輸錯誤時,只需要重傳出錯分片,而不是整個文件。另外分片傳輸能夠更加實時的跟蹤上傳進度。
1.2 預覽、壓縮
支持常用圖片格式jpg,jpeg,gif,bmp,png預覽與壓縮,節省網路數據傳輸。
解析jpeg中的meta信息,對於各種orientation做了正確的處理,同時壓縮後上傳保留圖片的所有原始meta數據。
1.3 多途徑添加文件
支持文件多選,類型過濾,拖拽(文件&文件夾),圖片粘貼功能。
粘貼功能主要體現在當有圖片數據在剪切板中時(截屏工具如QQ(Ctrl + ALT + A), 網頁中右擊圖片點擊復制),Ctrl + V便可添加此圖片文件。
1.4 HTML5 & FLASH
兼容主流瀏覽器,介面一致,實現了兩套運行時支持,用戶無需關心內部用了什麼內核。
同時Flash部分沒有做任何UI相關的工作,方便不關心flash的用戶擴展和自定義業務需求。
1.5 MD5秒傳
當文件體積大、量比較多時,支持上傳前做文件md5值驗證,一致則可直接跳過。
如果服務端與前端統一修改演算法,取段md5,可大大提升驗證性能,耗時在20ms左右。
1.6 易擴展、可拆分
採用可拆分機制, 將各個功能獨立成了小組件,可自由搭配。
採用AMD規范組織代碼,清晰明了,方便高級玩家擴展。
2、引入資源
2.1 下載包內容
├── Uploader.swf // SWF文件,當使用Flash運行時需要引入。
├── webuploader.js // 完全版本。
├── webuploader.min.js // min版本
├── webuploader.flashonly.js // 只有Flash實現的版本。
├── webuploader.flashonly.min.js // min版本
├── webuploader.html5only.js // 只有Html5實現的版本。
├── webuploader.html5only.min.js // min版本
├── webuploader.withoutimage.js // 去除圖片處理的版本,包括HTML5和FLASH.
└── webuploader.withoutimage.min.js // min版本
2.2 或者直接使用由staticfile提供的cdn版本,或者下載Git項目包。
// SWF文件,當使用Flash運行時需要引入。
├── http://cdn.staticfile.org/webuploader/0.1.0/Uploader.swf
// 完全版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.min.js
// 只有Flash實現的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.flashonly.min.js
// 只有Html5實現的版本。
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.js
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.html5only.min.js
// 去除圖片處理的版本,包括HTML5和FLASH.
├── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.js
└── http://cdn.staticfile.org/webuploader/0.1.0/webuploader.withoutimage.min.js
2.3 DIY打包
WebUploader文件打包藉助了Grunt工具來實現
2.3.1 環境依賴
1.git命令行工具
2.node & npm命令行工具
3.grunt (npm install grunt-cli -g)
2.3.2 編譯代碼
1.克隆 webuploader git倉庫,git clone https://github.com/fex-team/webuploader.git。
2.安裝node依賴,npm install。
3.執行grunt dist,此動作會在dist目錄下面創建合並版本的js, 包括通過uglify壓縮的min版本。
2.3.3 配置
打開webuploader倉庫根目錄下面的Gruntfile.js文件, 代碼合並有buildtask來完成。找到build配置項。
Gruntfile.js已經配置了一個自定義合並的demo. 打包只支持HTML5的版本
// 自己配置的實例
// glob語法。
custom: {
preset: "custom",
cwd: "src",
src: [
'widgets/**/*.js',
'runtime/html5/**/*.js' ],
dest: "dist/webuploader.custom.js"
}
3、angular指令——<web-uploader>
3.1 指令功能
添加一個上傳文件按鈕,可以自行配置上傳文件的類型和過濾規則,且在彈出的模態框中進行操作,支持連續上傳,分類選擇上傳
3.2 使用說明
這里只是使用說明,可能會加一些注意事項,具體參數或者變數說明請參看後面
3.2.1 頁面添加一個指令
<web-uploader class="btn btn-info" type="image" accept="accept">uploader</web-uploader>
3.2.2 配置上傳類型和過濾規則
上傳類型
type有四種類型,分別為
image:圖片
video:音視頻
flash:flash
file:辦公文檔,壓縮文件等等
過濾規則
accept有四個對象屬性,屬性中包含標題、允許文件後綴、允許的mimetype
3.2.3 指令中綁定彈出模態框的事件
web-uploader這個指令中其實只做了一件事,給元素本身綁定彈出模態框的事件,具體上傳文件是在模態框中完成的
3.2.4 初始化uploader類,配置相關屬性
在模態框控制器中用到了$timeout
$timeout(function(){
//這里是上傳配置代碼
},0)
因為配置uploader時需要事先准備好dom元素,angular打開模態框是非同步而JavaScript是單線程,所以實際上在執行模態框控制器中的代碼時,模態框並沒有打開,也就是dom並沒有載入完成,這會導致WebUploader報a.runningtime is not a function...的錯誤
3.3 指令詳細說明
3.3.1 父級controller中的配置
.controller('myCtrl',['$scope', '$modal', function($scope, $modal){
//配置允許上傳的類型 圖片/音視頻/flash/文件
$scope.accept = {
//圖片
image: {
title : 'Images',//標題
extensions : 'gif,jpg,jpeg,bmp,png,ico',//允許上傳文件的後綴
mimeTypes : 'image/*'//允許的mimetype
},
//音視頻
video: {
title : 'Videos',
extensions : 'wmv,asf,asx,rm,rmvb,ram,avi,mpg,dat,mp4,mpeg,divx,m4v,mov,qt,flv,f4v,mp3,wav,aac,m4a,wma,ra,3gp,3g2,dv,vob,mkv,ts',
mimeTypes : 'video/*,audio/*'
},
//flash
flash: {
title : 'Flashs',
extensions : 'swf,fla',
mimeTypes : 'application/x-shockwave-flash'
},
//辦公文檔,壓縮文件等等
file: {
title : 'Files',
extensions : 'zip,rar,ppt,pptx,doc,docx,xls,xlsx,pdf',
mimeTypes : 'application/zip,application/x-rar-compressed,application/vnd.ms-powerpoint,application/vnd.openxmlformats- officedocument.presentationml.presentation,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms- excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/pdf'
}
};
}])
3.3.2 指令web-uploader
.directive('webUploader', ['$modal', function($modal){
return{
restrict: 'AE',
scope: {
accept: '=accept'
},
link: function($scope, $element, $attr){
$element.bind('click',function(){
var modalInstance = $modal.open({
controller: 'modalCtrl',
templateUrl: 'template/webuploader.tpl.html',
size:'lg',
resolve: {
items: function(){
return {
accept: $scope.accept,
type: $attr.type
};
}
}
});
modalInstance.result.then(function(returnStatus){
console.log(returnStatus);
},function(){
console.log('Modal dismissed at: ' + new Date());
});
});
}
};
}]);
⑽ js怎麼獲取上傳圖片的完整路徑
如果你指的是C:\Users\Public\Pictures\Sample Pictures\沙漠.jpg類似這種本地路徑,是不可能的。因為文件路徑也屬於用戶的敏感信息,js這種web語言對本機文件的處理非常有限,目的也是為了避免安全以及隱私問題。
<input type="file />控制項中,你是不能獲取到本機完整路徑的。而且正常情況下也沒有這么做的必要,如果你非要或者完整路徑,你應該想想你們的需求是不是有問題。