|
发表于 2023-6-7 20:16:54
|
显示全部楼层
贵州省贵阳市
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传图片并压缩</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<form id="form">
<h2>上传图片并压缩</h2>
<div>
<input type="file" accept="image/*" onchange="compressImage(this.files)">
<br />
<img id="preview" style="max-width: 500px;">
</div>
<div>
<label>日期:</label><br>
<input type="date" name="riqi" value="" />
</div>
<div>
<label>报销金额:</label><br>
<input type="text" name="money" value=""></div>
<div>
<label>备注:</label>
<input type="text" name="bz" value=""></div>
<div>
<label>账目分类</label>
<select name="zmfl">
<option value="1">官任社区</option>
<option value="2">著赫(厦门)科技园</option>
<option value="3">漳州雅信厂房</option>
<option value="4">海沧张总</option>
<option value="5">置投厂房</option>
<option value="6">其他</option>
</select>
</div>
<div>
<label>上传凭证:</label>
<input type="file" accept="image/*" name="image">
<img id="image-preview" style="max-width: 500px;display:none;">
</div>
<div>
<button type="submit" onclick="uploadFile(event)">记账</button>
</div>
</form>
<script src="https://cdn.bootcdn.net/ajax/libs/compressorjs/1.0.5/compressor.min.js"></script>
<script>
// 压缩图片
function compressImage(files) {
var reader = new FileReader();
reader.onload = function (event) {
var image = new Image();
image.src = event.target.result;
image.onload = function () {
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
var maxHeight = 600;
var maxWidth = 600;
var width = image.width;
var height = image.height;
if (width > height) {
if (width > maxWidth) {
height *= maxWidth / width;
width = maxWidth;
}
} else {
if (height > maxHeight) {
width *= maxHeight / height;
height = maxHeight;
}
}
canvas.width = width;
canvas.height = height;
context.fillStyle = "#ffffff";
context.fillRect(0, 0, canvas.width, canvas.height);
context.drawImage(image, 0, 0, width, height);
var dataURI = canvas.toDataURL('image/jpeg', 0.6);
$('#preview').attr('src', dataURI);
$('#preview').show();
}
};
reader.readAsDataURL(files[0]);
}
// 上传文件
function uploadFile(event) {
event.preventDefault();
var form = document.querySelector('#form');
var formData = new FormData(form);
var fileInput = document.querySelector('input[type=file]');
var file = fileInput.files[0];
if (file) {
var options = {
maxSizeMB: 0.5,
maxWidth: 1024,
maxHeight: 1024,
fileType: 'image',
exif: true,
success: function (result) {
var compressedFile = new File([result], 'image', {
type: result.type,
lastModified: Date.now()
});
formData.set('image', compressedFile);
$.ajax({
url: form.action,
type: 'POST',
data: formData,
contentType: false,
processData: false,
success: function (response) {
console.log(response);
},
error: function (error) {
console.log(error);
}
});
},
error: function (error) {
console.log(error);
}
};
new Compressor(file, options);
} else {
$.ajax({
url:‘upload.php’,
type: ‘POST’,
data: formData,
contentType: false,
processData: false,
success: function (response) {
console.log(response);
},
error: function (error) {
console.log(error);
}
});
}
}
// 预览图片
var fileInput = document.querySelector('input[type=file]');
var previewImg = document.querySelector('#image-preview');
fileInput.addEventListener('change', function () {
var file = this.files[0];
if (file) {
var reader = new FileReader();
reader.addEventListener('load', function () {
previewImg.src = reader.result;
previewImg.style.display = 'block';
});
reader.readAsDataURL(file);
} else {
previewImg.src = '';
previewImg.style.display = 'none';
}
});
</script> |
|