HTML 5ファイルドメイン+FileReaderファイルを読み込みサーバにアップロード(3)
14105 ワード
一、ファイルをblobとして読み込んでサーバーにアップロードする
HTML
JS
バックグラウンドC#処理キー:
二、画像ファイルを読み取り、サーバーにアップロードする
HTML
JS:
バックグラウンドキーの処理は同じです.
ファイル2を読み込みます.http://www.cnblogs.com/tianma3798/p/5839791.html
ファイル1を読み込みます.http://www.cnblogs.com/tianma3798/p/4355949.html
HTML
<div class="container">
<input type="file" id="file" />
<input type="button" id="btn1" value=" " onclick="uploadClick();" />
div>
JS
// ,
var fileBox = document.getElementById('file');
fileBox.onchange = function () {
//
var fileList = fileBox.files;
for (var i = 0; i < fileList.length; i++) {
var file = fileList[i];
uploadFile(file);
}
}
//
function uploadFile(file) {
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function () {
var blob = new Blob([reader.result]);
//
var fd = new FormData();
fd.append('file', blob);
var ext = file.name.substring(file.name.lastIndexOf('.'));
fd.append('extention', ext);
fd.append('maxsize', 1024*1024*4);//Asp.net 4MB
fd.append('isClip', -1);
var xhr = new XMLHttpRequest();
xhr.open('post', '../ashx/upload.ashx', true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = eval('(' + xhr.responseText + ')');
console.info(data);
if (data.success) {
//
var imgName = data.msg;
alert(imgName);
} else {
alert(data.msg);
}
}
}
//
xhr.send(fd);
}
}
バックグラウンドC#処理キー:
//
HttpRequest req = _Context.Request;
string newname = _fileInfo.CreateNewName(newExtention);
//
Stream stream = _PostedFile.InputStream;
byte[] dataOne = new byte[stream.Length];
stream.Read(dataOne, 0, dataOne.Length);
FileStream fs = new FileStream(_fileInfo.TempFile + newname, FileMode.Create, FileAccess.Write);
try
{
fs.Write(dataOne, 0, dataOne.Length);
}
finally
{
fs.Close();
stream.Close();
}
return newname;
二、画像ファイルを読み取り、サーバーにアップロードする
HTML
<div class="container">
<input type="file" id="file" accept="image/*" />
<input type="button" id="btn1" value=" " onclick="uploadClick();" />
<h4> :h4>
<img src="" id="img1" />
div>
JS:
// ,
var fileBox = document.getElementById('file');
fileBox.onchange = function () {
//
var fileList = fileBox.files;
for (var i = 0; i < fileList.length; i++) {
var file = fileList[i];
//
if (/image\/\w+/.test(file.type))
readFile(file);
else
console.log(file.name + ': ');
}
}
// ,
function uploadClick() {
var fileList = fileBox.files;
for (var i = 0; i < fileList.length; i++) {
var file = fileList[i];
//
if (/image\/\w+/.test(file.type))
uploadFile(file);
else
console.log(file.name + ': ');
}
}
//
function uploadFile(file) {
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function () {
var blob = new Blob([reader.result], { type: 'image/jpg' });
//
var fd = new FormData();
fd.append('file', blob);
var ext = file.name.substring(file.name.lastIndexOf('.'));
fd.append('extention', ext);
fd.append('isClip', -1);
var xhr = new XMLHttpRequest();
xhr.open('post', '../ashx/upload.ashx', true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = eval('(' + xhr.responseText + ')');
console.info(data);
if (data.success) {
//
var imgName = data.msg;
alert(imgName);
} else {
alert(data.msg);
}
}
}
//
xhr.send(fd);
}
}
// DataURL
function readFile(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function (e) {
var result = reader.result;
$('.container blockquote').text(result);
$('#img1').attr('src', result)
}
}
バックグラウンドキーの処理は同じです.
ファイル2を読み込みます.http://www.cnblogs.com/tianma3798/p/5839791.html
ファイル1を読み込みます.http://www.cnblogs.com/tianma3798/p/4355949.html