gpt4 book ai didi

jquery - 打开文件对话框并通过单击图像提交图像

转载 作者:行者123 更新时间:2023-12-01 01:59:13 25 4
gpt4 key购买 nike

我正在尝试通过单击某个元素中的现有图像来上传图像。

因此,用户将单击图像,将显示文件上传对话框,当用户从文件对话框中选择图像时,表单会自动提交表单并重新加载页面。

这是我的一些代码:

$(document).ready(function() {
$('#profile').click(function(e){
$('#fileUploadField').click();
e.preventDefault();
});
header('Location: ' . $current_file);
});

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="profile" id="fileUploadField"> <input type="submit">
</form>

配置文件 div 是包含图像的位置

我已经有了显示图像的代码。我只需要打开对话框,然后在关闭时提交表单并刷新页面。

这是我的其他代码:

<?php
if (isset($_FILES['profile']) === true) {
if (empty($_FILES['profile']['name']) === true) {
echo 'Please choose a file!';
} else {
$allowed = array('jpg', 'jpeg', 'gif', 'png');

$file_name = $_FILES['profile']['name'];
$file_extn = strtolower(end(explode('.', $file_name)));
$file_temp = $_FILES['profile']['tmp_name'];

if (in_array($file_extn, $allowed) === true) {
change_profile_image($session_user_id, $file_temp, $file_extn);

header('Location: ' . $current_file);
exit();

} else {
echo 'Incorrect file type. Allowed: ';
echo implode(', ', $allowed);
}
}
}

if (empty($user_data['picture']) === false) {
echo '<img src="', $user_data['picture'], '" alt="', $user_data['firstname'], '\'s Profile Image" style="height:100px">';
}
?>

最佳答案

通过单击其他内容很难触发文件类型的输入。您将遇到的最大问题是 IE 会将其视为安全问题,并且可能不允许您这样做(如果输入被隐藏)。为了解决这个问题,您可以“淡化”图像后面的输入,这样当用户单击图像时,他们实际上是在单击文件输入。

你的 html 可能看起来像这样:

<div class="hiddenFileInputContainter">
<img class="fileDownload" src="/images/ico_upload.png">
<input type="file" name="fileUp" class="hidden" accept="image/*">
</div>

然后,您需要将输入的不透明度设置为零,以便让其后面的图像可见,而无需实际从页面中删除输入:

input[type='file'].hidden
{
margin: 0;
padding: 0;
position: absolute;
top: 0;
right: 0;
height: 100%;
font-size: 50px;
cursor: pointer;
opacity: 0;
-moz-opacity: 0;
filter: Alpha(Opacity=0);
}

您还需要设置图像和容器的尺寸:

img.fileDownload
{
height: 26px;
width: 26px;
padding: 0;
display: inline-block;
vertical-align: middle;
margin: 0 4px 0 0;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
}

div.hiddenFileInputContainter
{
position: relative;
display: inline-block;
width: 27px;
height: 27px;
overflow: hidden;
vertical-align: middle;
cursor: pointer;
}

请注意,输入的尺寸会溢出,因此无论您单击容器的何处,都会点击其中的输入。输入应尽可能大,按钮的实际尺寸在容器和图像上设置。

成功打开对话框后,只需执行以下操作即可提交表单:

$("#fileUploadField").on("change", function() {
$("#formId").submit();
});

关于jquery - 打开文件对话框并通过单击图像提交图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16696617/

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