gpt4 book ai didi

php - 不使用 HTML 表单元素将图像文件上传到服务器

转载 作者:搜寻专家 更新时间:2023-10-31 21:15:57 24 4
gpt4 key购买 nike

我需要在不使用 html 表单标记的情况下在服务器上上传图片。有没有简单的方法来做到这一点。实际上,我一直在构建一个应用程序,允许用户上传他的照片或从网络摄像头拍摄一张新照片,如果用户单击上传按钮,则照片将移动到服务器。当用户上传图片并按下上传按钮时,它工作正常,因为我一直在使用带有 type='file' 的 HTML 输入标签,但是当我从网络摄像头拍摄图片并将其呈现在 HTML5 canvas 标签上时,我点击上传按钮,没有图片移动到服务器,因为输入标签中没有文件。在这两种情况下,我都使用相同的 Canvas 元素和 img 标签向用户展示。

有没有一种方法可以不使用表单元素进行上传,或者有没有一种方法可以将从 Canavas 元素获取的图像对象分配给相同的表单输入元素?

欢迎大家回答

提前致谢

服务器端代码

    function bytesToSize1024($bytes, $precision = 2) {
$unit = array('B','KB','MB');
return @round($bytes / pow(1024, ($i = floor(log($bytes, 1024)))), $precision).' '.$unit[$i];
}

$sFileName = $_FILES['image_file']['name'];
$sFileType = $_FILES['image_file']['type'];
$sFileSize = bytesToSize1024($_FILES['image_file']['size'], 1);

$target = "upload/";
$target = $target . basename( $_FILES['uploaded']['name']) ;
$ok=1;
$error=$_FILES["image_file"]["error"];


$uploaddir = '/var/www/example119/upload/';
$uploadfile = $uploaddir . basename($_FILES['image_file']['name']);

if(!empty($_FILES))
{
if(move_uploaded_file($_FILES['image_file']['tmp_name'], "$target$sFileName"))
{
echo "The file ". basename( $_FILES['image_file']['name']). " has been uploaded...";
}
else {
echo "Sorry, there was a problem uploading your file. {$error}";
}
}
else
{
echo "_files is empty";
}

发出 HTTP 请求的 Javascipt 代码

function startUploading() {
// cleanup all temp states

iPreviousBytesLoaded = 0;
var oProgress = document.getElementById('progress');
oProgress.style.display = 'block';
oProgress.style.width = '0px';

// get form data for POSTing
//var vFD = document.getElementById('upload_form').getFormData(); // for FF3
var vFD = new FormData(document.getElementById('upload_form')); // this is for when user upload from browser box
var vvFD=document.getElementById('preview1'); //added by TODO to test
// create XMLHttpRequest object, adding few event listeners, and POSTing our data
var oXHR = new XMLHttpRequest();
oXHR.upload.addEventListener('progress', uploadProgress, false);
oXHR.addEventListener('load', uploadFinish, false);
oXHR.addEventListener('error', uploadError, false);
oXHR.addEventListener('abort', uploadAbort, false);
oXHR.open('POST', 'example_upload/upload.php');
//oXHR.send(vFD);
oXHR.send(vvFD);

// set inner timer
oTimer = setInterval(doInnerUpdates, 300);
}

最佳答案

也许您应该尝试通过 POST 发送图像数据。它没有任何大小限制,内容可以遵循任何格式。

关于php - 不使用 HTML 表单元素将图像文件上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864899/

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