似乎没有人将各种StackOverflow问题中的所有示例代码绑定到一个如何处理照片上传的良好,精心整理的示例中。这是我的开始......请帮助改进它。
这是我们的设置:
$file
,例如<input type="file" name="<?= $file ?>" />
。$photosPath
,例如$photosPath = "/photos/"
。$targetFilename . ".jpg"
,例如$targetFilename
可以来自我们上传表单中的用户名文本字段。$filePath
中,例如用于插入数据库。$maxSize
字节的文件。答案 0 :(得分:0)
以下是我拍摄的照片:
// Given: $file, $targetFilename, $photosPath, $maxSize
$filePath = NULL;
if (array_key_exists($_FILES, $file)
&& $_FILES[$file]['size'] != 0
&& $_FILES[$file]['error'] == UPLOAD_ERR_OK)
{
if ($_FILES[$file]['size'] > $maxSize)
{
throw new Exception("The uploaded photo was too large; the maximum size is $maxSize bytes.");
}
$imageData = getimagesize($_FILES[$file]['tmp_name']);
$extension = image_type_to_extension($imageData[2]);
if ($extension != ".jpg" && $extension != ".jpeg")
{
throw new Exception("Only .jpg photos are allowed.");
}
$possibleFilePath = $photosPath . $targetFilename . ".jpg";
if (!move_uploaded_file($_FILES[$file]['tmp_name'],
$_SERVER['DOCUMENT_ROOT'] . $possibleFilePath)
{
throw new Exception("Could not save the uploaded photo to the server.");
}
$filePath = $possibleFilePath;
}