我想知道如何使用jquery验证和发布图片上传论坛。只有两个输入:标题和图像。如果这些字段中的任何一个为空或者上传的文件格式错误,我需要给出错误。这是我的代码(目前不使用jquery。)
Image.php
<?php
$uploadDir = 'images/'; //Image Upload Folder
if(isset($_POST['Submit']))
{
$title = mysql_real_escape_string($_POST['title']);
$fileName = $_FILES['Photo']['name'];
$tmpName = $_FILES['Photo']['tmp_name'];
$fileSize = $_FILES['Photo']['size'];
$fileType = $_FILES['Photo']['type'];
$filePath = $uploadDir . $fileName;
$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Error uploading file";
exit;
}
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}
$query = "INSERT INTO images(title,image) VALUES ('".$title."','".$filePath."')";
mysql_query($query) or die (mysql_error());
}
?>
<form name="Image" enctype="multipart/form-data" action="image.php" method="POST">
<input type="text" name="title" id="title" value=""><br/><br/>
<input type="file" name="Photo" size="20" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png"><br/>
<INPUT type="submit" class="button" name="Submit" value=" Submit ">
</form>
答案 0 :(得分:0)
您无法使用jQuery检查文件,您可以检查它是否具有正确的扩展名。要检查字段是否为空,您可以使用:
if ($('#title').val() === '') {
// error code
}
您可以使用以下内容检查文件扩展名:
var extension = $('input[name=Photo]').val().split('.').pop();
if (extension !== "gif" && extension !== "jpg") {
// error code
}
我不确定您是否要使用AJAX发布文件,但您不必这样做。如果您附加表单提交事件的验证,则可以在发生错误时停止提交表单,否则请将其提交给服务器。
$('form').submit(function () {
var error = false;
// error checking here
if (error) {
return false;
}
});
答案 1 :(得分:0)
您可以在扩展程序上验证...
$('form').submit(function(event) {
var file = $('input[type=file]').val();
if ( ! file) {
alert('The file is required.');
event.preventDefault();
return;
}
if (file.match(/\.(?:jpeg|jpg|gif)$/)) {
alert('Image files only!');
event.preventDefault();
}
});
...或者您可以验证mime类型。
$('form').submit(function(event) {
var file = $('input[type=file]').prop('files')[0];
if ( ! file) {
alert('The file is required.');
event.preventDefault();
return;
}
var mime = file.type;
if (mime != 'text/jpeg' || mime != 'application/gif') {
alert('Image only!');
event.preventDefault();
}
});
当然,您还需要在服务器上进行验证,此代码仅供JavaScript用户使用。
答案 2 :(得分:0)
我只是使用jQuery验证jQuery库它内置了很多验证,所以你不必担心处理多个条件而且它很容易使用。
http://bassistance.de/jquery-plugins/jquery-plugin-validation/