猿问

Post 将文件名保存为数组;jpg 而不是输入名称

尝试使用输入框中的名称将 jpg 文件保存到服务器,但被保存为 Array.jpg


html文件内容:


<input type="text" name="datepicker" id="datepicker">

php文件内容:


$image = $_POST['image'];


$location = "upload/";


$image_parts = explode(";base64,", $image);


$image_base64 = base64_decode($image_parts[1]);


$filename = ['datepicker'].'.jpg';

echo $_REQUEST['datepicker'];


$file = $location . $filename;


file_put_contents($file, $image_base64);

来自 html 的脚本:


<script type='text/javascript'>

function screenshot(){

  html2canvas(document.body).then(function(canvas) {


    // Get base64URL

    var base64URL = canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream');


    // AJAX request

    $.ajax({

       url: 'ajaxfile.php',

       type: 'post',

       data: {image: base64URL},

       success: function(data){

       console.log('Upload successfully');

       }

    });

  });

}

</script>

没有错误消息,只是用错误的名称保存。


海绵宝宝撒
浏览 123回答 3
3回答

Cats萌萌

$filename = $_POST['datepicker'].'.jpg';

慕斯王

您使用的是不是在 PHP 中存储文件的好方法。在存储图像之前,您应该将当前日期和一些由 PHP 生成的随机数作为图像名称的前缀,因为如果将两个图像存储在服务器的同一文件夹中,则服务器的第一个图像将被覆盖,第二个文件将存储在其位置第一个完全消失的图像尝试在date('Ymdhis').rand(100000,999999)您的图像文件中添加前缀“&nbsp;”并使用$_FILES['something']['name']和$_FILES['something']['tmp_name']分别获取图像的名称和临时名称以存储图像

守着星空守着你

我现在已经解决了这个问题。我不得不修改 html 中的 javascript 以包含一个带有文本输入框中值的 var 并更新 ajax 以将其包含在数据行中。<script type='text/javascript'>function screenshot(){&nbsp; html2canvas(document.body).then(function(canvas) {&nbsp; &nbsp; // Get base64URL&nbsp; &nbsp; var base64URL = canvas.toDataURL('image/jpeg').replace('image/jpeg', 'image/octet-stream');&nbsp; &nbsp; var val1 = $('#datepicker').val();&nbsp; &nbsp; // AJAX request&nbsp; &nbsp; $.ajax({&nbsp; &nbsp; &nbsp; &nbsp;url: 'ajaxfile.php',&nbsp; &nbsp; &nbsp; &nbsp;type: 'post',&nbsp; &nbsp; &nbsp; &nbsp;//data: {image: base64URL, name: datepicker},&nbsp; &nbsp; &nbsp; &nbsp;data: {image: base64URL, datepicker: val1},&nbsp; &nbsp; &nbsp; &nbsp;success: function(data){&nbsp; &nbsp; &nbsp; &nbsp;console.log('Upload successfully');&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; });&nbsp; });}</script>然后我必须用文件名更新 php 文件,以在文件名中包含表单中的 txt 数据:<?php&nbsp;$image = $_POST['image'];$location = "upload/";$image_parts = explode(";base64,", $image);$image_base64 = base64_decode($image_parts[1]);$filename = $_POST['datepicker'].'.jpg';$file = $location . $filename;file_put_contents($file, $image_base64);?>
随时随地看视频慕课网APP
我要回答