gpt4 book ai didi

javascript - 通过注册表单提交时,图像未存储在 php 中的服务器上

转载 作者:行者123 更新时间:2023-12-03 17:22:18 35 4
gpt4 key购买 nike

我正在创建一个注册系统,其中将根据用户的输入创建一个文件夹,并将该人的图像放入该文件夹中。文件夹已创建,但图像只是一个空的 jpg 文件。
注册.php:

<!DOCTYPE>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Register</title>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/webcamjs/1.0.25/webcam.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />

<style type="text/css">
#results {
padding:20px;
border:1px solid;
background:#ccc;
}

#my_camera {
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div >
<form method="POST" action="saveimage.php">
<div>
<h1>Register</h1>
<p>Please fill in this form to register yourself.</p>
<hr>

<label for="username"><b>Name</b></label>
<input type="text" placeholder="Enter Name" name="username" required>
<hr>

<div >
<div id="my_camera"></div>
<br/>
<input type=button value="Take Snapshot" onClick="take_snapshot()">
<input type="hidden" name="image" >
</div>

<div>
<div id="results">Captured Image</div>
</div>

<div class="col-md-12 text-center">
<br/>
<button class="btn btn-success">Submit</button>
</div>
</div>
</form>
</div>

<!-- Configure a few settings and attach camera -->

<script language="JavaScript">

Webcam.set({

width: 490,

height: 390,

image_format: 'jpeg',

jpeg_quality: 90

});

Webcam.attach( '#my_camera' );

function take_snapshot() {

Webcam.snap( function(data_uri) {

$(".image-tag").val(data_uri);

document.getElementById('results').innerHTML = '<img src="'+data_uri+'"/>';

console.log(data_uri);

} );

}

</script>


</body>
</html>
保存图片.php:
  $theName = $_POST['username'];

$theDestinationPath = "images/".$theName;

if (!file_exists($theDestinationPath)){
mkdir($theDestinationPath,0755,true); // make the folder
}
else{
echo "<h1> You are already registered! Head back to previous page to login </h1>";
}

$img = $_POST['image'];

$folderPath = $theDestinationPath."/";

$image_parts = explode(";base64,", $img);
$image_type_aux = explode("image/", $image_parts[0]);
$image_type = $image_type_aux[1];

$image_base64 = base64_decode($image_parts[1]);
$imgName = 1;
$fileName = $imgName.'.jpg';

$file = $folderPath . $fileName;
file_put_contents($file, $image_base64);
当我控制台记录 data_uri 时,它显示了 base64 编码格式。发图的时候好像有问题。

最佳答案

我认为你传递的是一个空的 $_POST['image'];
因为当调用 take_snapshot() 时,您将 base64 编码值的值传递给错误的元素。

function take_snapshot() {

Webcam.snap( function(data_uri) {

$("input[name='image']").val(data_uri); // Do this change

document.getElementById('results').innerHTML = '<img src="'+data_uri+'"/>';

console.log(data_uri);

} );

}

关于javascript - 通过注册表单提交时,图像未存储在 php 中的服务器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66962137/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com