销售管理系统中图片上传:分享php+ajax的简便方法

在我最近撰写的销售管理系统中,用户需要上传产品的图片。我发现了很多插件,这些插件非常麻烦且难以修改。最后,我找到了一篇文章,该文章使用PHP和Ajax上传图片。代码感觉很简单。而且很容易更改。将其转发在这里与您分享:

销售管理系统中图片上传:分享php+ajax的简便方法

在本文中,我们使用AJAX表单提交插件:JQERY.FORM.JS。专家修改了几行代码,并将其更改为:jquery.wallform.js。它直接使用。

HTML部分

我们在页面上贴上表单,并使用帖子将其提交给背景PHP处理程序上传。请注意,Enctype属性设置支持文件上传。 #preview用于显示上传的图片。关于CSS样式设置,请参阅下载软件包的源代码。

<form id="imageform" method="post" enctype="multipart/form-data" action="upload.php"> 
    <div id="up_status" style="display:none"><img src="loader.gif" alt="uploading"/>div> 
    <div id="up_btn" class="btn"> 
        <span>添加图片span> 
        <input id="photoimg" type="file" name="photoimg"> 
    div> 
form> 
<p>最大100KB,支持jpg,gif,png格式。p> 
<div id="preview">div> 

jQuery部分

此示例基于jQuery,因此必须在页面中加载jQuery库和jQuery.wallform.js。

单击“添加图片”按钮时,“选择文件对话框”弹出。选择要上传的图片后,触发了更改事件。然后表格#imageform调用jquery.wallform.js的ajaxform()方法,将表单数据提交给背景PHP进行处理,并根据返回的结果处理页面元素的显示。如果成功上传,则图片将在第一个页面上显示。对于使用Ajaxform(),您可以参考此站点上的文章:Ajax表单提交插件JQery表单。

 
 
$(function(){ 
    $('#photoimg').die('click').live('change', function(){ 
        var status = $("#up_status"); 
        var btn = $("#up_btn"); 
        $("#imageform").ajaxForm({ 
            target: '#preview',  
            beforeSubmit:function(){ 
                status.show(); 
                btn.hide(); 
            },  
            success:function(){ 
                status.hide(); 
                btn.show(); 
            },  
            error:function(){ 
                status.hide(); 
                btn.show(); 
        } }).submit(); 
    }); 
});

PHP部分

upload.php流程图像上传并将上传的图像保存在上传/目录中。请注意,目录必须具有写入权限。首先,您需要检查图像格式和图像大小是否满足要求。然后使用MOVE_UPLOADED_FILE()上传图像并重命名图像,格式为:time()。rand(100,999)。

$path = "uploads/"; 
$extArr = array("jpg", "png", "gif"); 
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    $name = $_FILES['photoimg']['name']; 
    $size = $_FILES['photoimg']['size']; 
    if(empty($name)){ 
        echo '请选择要上传的图片'; 
        exit; 
    } 
    $ext = extend($name); 
    if(!in_array($ext,$extArr)){ 
        echo '图片格式错误!'; 
        exit; 
    } 
    if($size>(100*1024)){ 
        echo '图片大小不能超过100KB'; 
        exit; 
    } 
    $image_name = time().rand(100,999).".".$ext; 
    $tmp = $_FILES['photoimg']['tmp_name']; 
    if(move_uploaded_file($tmp, $path.$image_name)){ 
        echo '.$path.$image_name.'"  class="preview">'; 
    }else{ 
        echo '上传出错了!'; 
    } 
    exit; 
} 
//获取文件类型后缀 
function extend($file_name){ 
    $extend = pathinfo($file_name); 
    $extend = strtolower($extend["extension"]); 
    return $extend; 
} 

在实际项目中,我将内容输出(无论错误信息或最后一个文件路径)返回到原始页面。每次我上传图片时,我都会将图像路径拼接在一起,并写下它们将其保存在隐藏的输入中(直接写入它以获取输入ID值和$(“#id”)。val(path))。 ,并在提交表单时随附所有信息,以便它可以基于PHP返回的信息确定图像是否成功上传。

以上是多个图片的上传模式。

如果要在每个上传之前清除输入值,请清除输入值,然后将表单提交到背景中。

缺点

此插件不好的一件事是,当您上传错误的图片并再次上传新图片时,原始图片仍将上传到服务器,这存在错误冗余的问题。改进方法可能是用自己编写服务器小程序进行处理,这取决于项目。

你可能想看:
« 上一篇
下一篇 »

相关推荐

php实时推送,php实地培训

2026年10月05日

46阅读

php乱码出现问号的原因,php乱码出现问号的原因有哪些

2026年10月05日

38阅读

php一句话木马,一句话木马ctf

2026年10月05日

39阅读

php获取数组长度,php中如何获取数组的长度

2026年10月05日

43阅读

php面试题库及答案,php程序员面试真题库

2026年10月05日

41阅读

phpcontent-type修改,php源码二次修改需要多少钱

2026年10月05日

38阅读