Javascript CropBox唯一编号作为订单参考PHP
我正在使用CropBox上传一张裁剪过的图像,以便打印。 我需要一个由.txt文件生成的唯一编号,但我无法使用相同的订单号保存该文件。无论我怎么做,订单号都会不断增加,只是在订单号不存在的情况下才增加订单号。这个脚本使用了我不习惯的javascript,我似乎无法让它做我需要的事情Javascript CropBox唯一编号作为订单参考PHP,javascript,php,jquery,Javascript,Php,Jquery,我正在使用CropBox上传一张裁剪过的图像,以便打印。 我需要一个由.txt文件生成的唯一编号,但我无法使用相同的订单号保存该文件。无论我怎么做,订单号都会不断增加,只是在订单号不存在的情况下才增加订单号。这个脚本使用了我不习惯的javascript,我似乎无法让它做我需要的事情 <?php session_start(); $imgW = 200; $imgH = 300; if(isset($_SESSION['OrNo'])){ $counter
<?php
session_start();
$imgW = 200;
$imgH = 300;
if(isset($_SESSION['OrNo'])){
$counter = $_SESSION['OrNo'];
echo $counter;
}else{
$counter = file_get_contents(strtolower("orderno.txt")) + 1;
file_put_contents("orderno.txt", $counter);
$_SESSION['OrNo'] = $counter;
}
$filename = 'custupload/'.$counter. '.png';
if(isset($_REQUEST['doAction']) && $_REQUEST['doAction']== 'submit'){
if(isset($_FILES['image'])){
$output_file = $filename;
//$Globals ['outputfile'];
move_uploaded_file($_FILES["image"]["tmp_name"], $output_file);
$ret['status'] = true;
$ret['msg'] = "Your file has been added to the product! $output_file";
echo json_encode($ret);
exit;
}
}
?>
<center>
<?php
$Productid = $_REQUEST["Productid"];
$ImgTemplate = $_REQUEST["ImgTemplate"];
$pic = $_REQUEST["ImgTemplate"];
?>
<link type="text/css" media="screen" rel="stylesheet" href="jquery.cropbox.css">
<form id="formbanner" action="" method="post" enctype="multipart/form-data">
<input type="file" name="banner" class="upImage" >
<input type="hidden" name="photo" value="" id="fileinp">
<br>
<br>
<img class="cropimage" id="myImg" src="#" alt="" />
<br>
<br>
<div class="form-group" >
<input type="submit" class="btn btn btn-primary" name="submit" id="save_banner" value="Submit">
<img class="loadingimage" style="display: none;" src="loading.gif" width="64" height="20"/>
</div>
<br>
</form>
</div>
<?php echo "$Productid";?>&ImgTemplate=<?php echo "$ImgTemplate";?>&filename=<?php echo "$filename";?>
<script src="jquery.js"></script>
<script type="text/javascript" src="jquery.mousewheel.js"></script>
<script type="text/javascript" src="jquery.cropbox.js"></script>
<script type="text/javascript">
var myImage = '';
$(function () {
$(".upImage").change(function () {
var ext = $(this).val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
alert('Please select a valid image [ jpg | jpeg | gif | png ]');
$(this).val('');
myImage= '';
clearImage();
}else{
if (this.files && this.files[0]) {
var reader = new FileReader();
reader.onload = imageIsLoaded;
reader.readAsDataURL(this.files[0]);
}
}
});
function imageIsLoaded(e) {
$('.cropCont').show();
$('#myImg').attr('src', e.target.result);
$('#myImg').show();
$( '.cropimage' ).cropbox( {width: <?php echo $imgW; ?>, height: <?php echo $imgH; ?>, showControls: 'auto' } ).on('cropbox', function( event, results, img ) {
myImage = img.getDataURL();
});
}
function clearImage(){
$('.cropCont').hide();
$("#banner").val('');
$("#myImg").removeAttr('src');
$('#myImg').hide();
}
$('#formbanner').submit(function(e){
e.preventDefault();
$('#save_banner').attr('disabled',true);
$('.loadingimage').show();
var form = $('#formbanner')[0];
var fd = new FormData(form);
if(myImage != ''){
var block = myImage.split(";");
var contentType = block[0].split(":")[1];// In this case "image/gif"
var realData = block[1].split(",")[1];// In this case "R0lGODlhPQBEAPeoAJosM...."
var blob = b64toBlob(realData, contentType);
fd.append("image", blob);
}
$.ajax({
url: '?doAction=submit',
data: fd,
processData: false,
contentType: false,
type: 'POST',
dataType : 'json',
success: function(data){
alert(data.msg);
if(data.status){
window.location='test.php?Productid=<?php echo "$Productid";?>&ImgTemplate=<?php echo "$ImgTemplate";?>&ONo=<?php echo "$counter";?>';
}else{
$('#save_banner').attr('disabled',false);
$('.loadingimage').hide(3000);
}
}
});
});
});
function b64toBlob(b64Data, contentType, sliceSize) {
contentType = contentType || '';
sliceSize = sliceSize || 512;
var byteCharacters = atob(b64Data);
var byteArrays = [];
for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
var slice = byteCharacters.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var blob = new Blob(byteArrays, {type: contentType});
return blob;
}
</script>
```
If anyone could point me in the right direction I would be grateful.
I have tried using session variables as well as creating the variable within the page.
&ImgTemplate=&filename=
var myImage='';
$(函数(){
$(“.upImage”).change(函数(){
var ext=$(this.val().split('.').pop().toLowerCase();
if($.inArray(ext、['gif'、'png'、'jpg'、'jpeg'])==-1){
警报('请选择有效图像[jpg | jpeg | gif | png]');
$(this.val(“”);
myImage='';
clearImage();
}否则{
if(this.files&&this.files[0]){
var reader=new FileReader();
reader.onload=imagesisload;
reader.readAsDataURL(this.files[0]);
}
}
});
函数imageIsLoaded(e){
$('.cropCont').show();
$('myImg').attr('src',e.target.result);
$('#myImg').show();
$('.cropimage').cropbox({width:,height:,showControls:'auto'}).on('cropbox',函数(事件,结果,img){
myImage=img.getDataURL();
});
}
函数clearImage(){
$('.cropCont').hide();
$(“#banner”).val(“”);
$(“#myImg”).removeAttr('src');
$('#myImg').hide();
}
$('#formbanner')。提交(函数(e){
e、 预防默认值();
$('save#u banner').attr('disabled',true);
$('.loadingimage').show();
var form=$('#formbanner')[0];
var fd=新表格数据(表格);
如果(myImage!=''){
var block=myImage.split(“;”);
var contentType=block[0]。拆分(“:”[1];//在本例中为“image/gif”
var realData=block[1]。拆分(“,”[1];//在本例中为“R0lGODlhPQBEAPeoAJosM…”
var blob=b64toBlob(realData,contentType);
fd.append(“图像”,blob);
}
$.ajax({
url:“?doAction=submit”,
数据:fd,
processData:false,
contentType:false,
键入:“POST”,
数据类型:“json”,
成功:功能(数据){
警报(data.msg);
if(数据状态){
window.location='test.php?Productid=&ImgTemplate=&ONo=';
}否则{
$('save#u banner').attr('disabled',false);
$('.loadingimage').hide(3000);
}
}
});
});
});
函数b64toBlob(b64Data、contentType、sliceSize){
contentType=contentType | |“”;
切片大小=切片大小| | 512;
var byteCharacters=atob(b64Data);
var ByteArray=[];
对于(变量偏移量=0;偏移量
在此之前的某个地方是否有会话\u start
(在包含此会话或其他内容的文件中)?如果不是,那么isset($\u SESSION['OrNo'])
将永远不会是真的…(这听起来不是一个很好的方法,因为多个用户同时使用它,您可能会在某个时候遇到问题…)是的,有一个用于数据库连接等的include文件。我删除了该链接以尝试简化code@CBroe乐意接受关于更好方法的任何建议,始终寻求尝试和改进:首先,如果您已经在项目中使用数据库,那么您也应该使用该数据库来存储此类计数器,而不是纯文本文件。数据库至少具有处理已内置的并发访问所需的所有机制,而对于文本文件,这总是有点冒险。