无线摄像头保存图片至FTP服务器,php - 为什么在以下情况下仍然存在使用设备摄像头捕获并上传到FTP服务器的“图像方向更改”问题? - 堆栈内存溢出...

我的网站使用的是PHP 5.5.19 。

我允许用户使用他们的智能设备相机拍摄照片,然后使用PHP将同一图像上传到FTP服务器。

我面临的问题是图像方向的变化。

假设,如果用户以设备的“人像”方向拍摄照片并将同一张照片上传到FTP服务器,则上传的照片的方向应仅为“人像”,但在我的情况下,它已更改为“风景”,反之亦然。

为了解决这个问题,我编写了以下代码,但对我而言不起作用。 因此,在尝试了所有方法之后,我正在寻求您的帮助。

HTML代码:

PHP代码:

if(!empty($_FILES['student_image']['name'])) {

$ext = pathinfo($_FILES['student_image']['name'], PATHINFO_EXTENSION);

$student_image_name = 'student_'.'.'.$ext;

$_POST['student_name'] = $student_image_name;

$ftp_server="52.237.5.85";

$ftp_user_name="myservercreds";

$ftp_user_pass="MyServerCreds";

$file = $_FILES['student_image']['name'];//tobe uploaded

$remote_file = "/Students/".$_POST['student_name'];

// set up basic connection

$conn_id = ftp_connect($ftp_server);

// login with username and password

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// turn passive mode on

ftp_pasv($conn_id, true);

if($login_result) {

if(!is_dir('ftp://myservercreds:MyServerCreds@52.237.5.85/Students')) {

ftp_mkdir($conn_id, "/Students");

ftp_chmod($conn_id, 0777, '/Students');

}

if(!file_exists("/Students/".$student_image_name))

$file_upload_status = ftp_put($conn_id, $remote_file, $file, FTP_BINARY);

//Below is the code I've written to overcome this issue but unfortunately same thing is happening again

if($file_upload_status) {

$exif = exif_read_data($remote_file);

$ort = $exif['COMPUTED']['Orientation'];

switch($ort) {

case 3: // 180 rotate left

$image = imagecreatefromjpeg($remote_file);

$rotated = imagerotate($image, 180, -1);

break;

case 6: // 90 rotate right

$image = imagecreatefromjpeg($remote_file);

$rotated = imagerotate($image, -90, -1);

break;

case 8: // 90 rotate left

$image = imagecreatefromjpeg($remote_file);

$rotated = imagerotate($image, 90, -1);

break;

}

imagejpeg($rotated, $remote_file);

$success_message = 'Photo Successfully Uploaded';

}

}

// close the connection

ftp_close($conn_id);

}

如果您需要有关我所面临问题的更多信息,请告诉我们。

谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值