- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这个功能
public static function upload($path_folder, $input_file_name) {
$photo_file = $_FILES[$input_file_name]; // FILE NAME
$photo_name = $photo_file['name']; // PHOTO NAME
$photo_tmp_name = $photo_file['tmp_name']; // TMP NAME
$photo_extension = pathinfo($photo_name, PATHINFO_EXTENSION); // EXTENSION
// soon GIFs
$rand_num = random_int(1, 3);
switch ($rand_num) {
case 1:
$hash = mb_strtoupper(Hash::create(), 'UTF-8');
break;
case 2:
$hash = mb_strtolower(Hash::create(), 'UTF-8');
break;
case 3:
$hash = str_shuffle(Hash::create());
break;
default:
$hash = Hash::create();
break;
}
$photo_with_extension = $hash . '.' . $photo_extension; // NEW FILE NAME
$factory_destination = 'photos/factory/' . $photo_with_extension; // FACTORY
if(move_uploaded_file($photo_tmp_name, $factory_destination)) {
if(file_exists($factory_destination)) {
if(
($photo_extension === 'jpg') ||
($photo_extension === 'jpeg') ||
($photo_extension === 'JPG') ||
($photo_extension === 'JPEG') ||
($photo_extension === 'png') ||
($photo_extension === 'PNG')
) {
if(
($photo_extension === 'jpg') ||
($photo_extension === 'jpeg') ||
($photo_extension === 'JPG') ||
($photo_extension === 'JPEG')
) {
if(imagecreatefromjpeg($factory_destination)) { // JPEG
$photo_create = imagecreatefromjpeg($factory_destination);
}
}
if(
($photo_extension === 'png') ||
($photo_extension === 'PNG')
) {
if(imagecreatefrompng($factory_destination)) { // PNG
$photo_create = imagecreatefrompng($factory_destination);
}
}
if(getimagesize($photo_tmp_name)) {
list($photo_width, $photo_height) = getimagesize($photo_tmp_name); // WIDTH & HEIGHT
$photo_new_width = 300; // NEW WIDTH
$photo_new_height = 300;
//$photo_new_height = ($photo_height / $photo_width) * $photo_new_width; // NEW HEIGHT
$true_color = imagecreatetruecolor($photo_new_width, $photo_new_height); // TRUE COLOR
if(imagecopyresampled($true_color, $photo_create, 0, 0, 0, 0, $photo_new_width, $photo_new_height, $photo_width, $photo_height)) {
$photo_copy = imagecopyresampled($true_color, $photo_create, 0, 0, 0, 0, $photo_new_width, $photo_new_height, $photo_width, $photo_height); // COPY
$mime = mime_content_type($factory_destination);
if(($mime === 'image/jpeg') || ($mime === 'image/png')) {
switch ($path_folder) {
case 1:
$folder = 'profile';
break;
case 2:
$folder = 'identities';
break;
default:
$folder = 'errors';
break;
}
$new_destination = 'photos/' . $folder . '/';
//$image = imagecreatefromstring(file_get_contents($photo_tmp_name));
$exif = exif_read_data($factory_destination);
if(!empty($exif['Orientation'])) {
switch($exif['Orientation']) {
case 8:
$true_color = imagerotate($true_color,90,0);
break;
case 3:
$true_color = imagerotate($true_color,180,0);
break;
case 6:
$true_color = imagerotate($true_color,-90,0);
break;
}
}
if(imagejpeg($true_color, $new_destination . $photo_with_extension, 75)) { // DESIGNATED PATHS
imagedestroy($true_color); // return
if(unlink($factory_destination)) {
return $photo_with_extension; // AUTO UPDATE ADMIN THAT THERE IS A PROBLEM
} else { return 'unlink last'; }
} else { return 'imagejpeg'; }
} else { return 'mime'; }
/*move*/
} else { return 'resampled'; }
} else { return 'get image:' . $photo_tmp_name; }
} else { return 'wrong ext'; }
} else { return 'default2.png'; }
} else { return 'move'; }
return empty($photo_with_extension) ? '' : 'false';
}
该函数一直运行到 move_uploaded_file()
之后什么都没有发生。
这是在生产、启用 GD 和兼容的 Linux 服务器上。您认为我的代码哪里出错了?不过,这在我的本地主机上工作得很好。
准确地说,imagejpeg()
是不起作用的那个
新信息;
问题似乎发生在 getimagesize($photo_tmp_name)
上,它返回 false
较新的信息:
在 getimagesize()
上给出的 tmp_name
在我回显时是正确的,但它返回 false。
最佳答案
如果在 move_uploaded_file()
函数之后,应该销毁 tmp_file
,您可以用已经移动的文件替换 tmp_file
,因为php 会执行阻塞的进程,所以这样做是安全的!
关于php - getimagesize() 函数不适用于 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38733051/
直到最近,我一直在使用一些 PHP 将照片上传到网站。但突然间它开始触发各种错误消息。 我使用的表单会运行以下代码: $uploaddir = "../../user_content/photo/";
问题:getimagesize() 不适用于某些 URL,尤其是重定向的 URL。 我四处搜索并检查了 stackoverflow,但无济于事。 这是我在本地机器上看到的: var_dump(geti
我正在本地使用 wordpress,出于某种原因,当我从 page.php 调用 getimagesize() 来检索它不起作用的大小时。我收到警告: getimagesize(http://loca
尝试上传 .JPG 文件时出现以下错误。 Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in H:
我有以下脚本,它在我的本地服务器上使用 PHP 5.2.6 返回图像的高度和宽度,但在我使用 5.2.17 的共享主机帐户上没有。 ini_set('memory_limit', '32M'); li
我创建了一个函数,我正在使用此函数调整图像大小以使其适合作为 div 背景图像,我将 div 大小和图像路径发送给函数。当高度大于宽度时效果很好,但它不起作用当宽度大于高度时。这怎么可能? funct
我使用上传图像的 PHP 脚本,然后使用 PHP 的 getImageSize() 获取尺寸,然后根据图片方向(纵向或横向)对图像执行操作。 然而(PHP 版本 5.4.12)在一些 .jpg 文件上
我网站上的图片位于其他服务器上。我试图使用 php 的 getimagesize 获取图像的大小,但它不起作用。它给出了一个错误“getimagesize is not seekable”。我在其他服
height: '.$height; ?> 这会产生以下输出: width: height: 编辑,我收到以下警告: Warning:getimagesize(http://cor-forum.de
当我尝试 getimagesize($img) 而图像不存在时,我得到一个错误。我不想先检查文件是否存在,只是处理错误。 我不确定 try catch 是如何工作的,但我想做类似的事情: try: g
我在下面附上了包含这些细节的图片:宽度:3024px高度:4032px getimagesize() 函数返回相反的结果: $size = GetimageSize("test.jpg"); echo
PHP 手册说它最多返回 7 个元素。并说 0, 1 是宽度和高度,然后是图像类型和属性。然后继续举个例子 $size=getimagesize() 那么,它返回什么?一个包含 7 个元素的数组还是只
当我在作为共享服务器的托管公司中使用 getimagesize() 时,出现以下错误。 Message: getimagesize() [function.getimagesize]: URL fil
我有一些图像的信息存储在 MySQL 数据库中。图片本身存储在一个文件夹中,但数据库包含它们的 URL 以及其他相关数据。 我遇到了 PHP getimagesize,我想用它来填充 的 width=
出现错误。如何避免错误通知? 这是错误信息: Notice: getimagesize() [function.getimagesize]: Read error! in C:\xampp\h
我有这个功能 public static function upload($path_folder, $input_file_name) { $photo_file = $_FILES[$in
我正在使用 Valum's file uploader使用 AJAX 上传图像。这个脚本以我不完全理解的方式将文件提交到我的服务器,所以最好通过显示我的服务器端代码来解释: $pathToFile =
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: GetImageSize() not returning FALSE when it should 我目前有
我收到以下错误: getimagesize(https://static1.squarespace.com/static/570d03d02b8dde8b2642afca/570f74e87c65e4
我正在运行 getimagesize() 来确定上传的文件是否是有效图像及其 MIME 类型。我的网络应用程序的用户报告说,他的一些图像在上传后出现“无效文件类型”错误。所以我让他寄给我一些检查。 错
我是一名优秀的程序员,十分优秀!