如何在joomla模块中通过javascript发送输入文件类型

Posted

技术标签:

【中文标题】如何在joomla模块中通过javascript发送输入文件类型【英文标题】:how to send a input file type via javascript in joomla modules 【发布时间】:2014-01-06 18:10:10 【问题描述】:

我想将带有 javascript 的文件发送到 php 文件。 我的 php 文件中有这个表单

<form action="" method="post" enctype="multipart/form-data">
   <label for="file">Filename:</label>
   <input type="file" name="file" id="file1"><br>
   <p id="poi">upload</p>
   <p id="plo"></p>
</form>

把这段代码放在js文件里

jQuery(document).on("click","#poi",function()
   var objfile=new FormData();
   var file=jQuery("#file1").get(0).files[0];
   objfile.append("iefile078",file);

   var ajax ;
   ajax.upload.addEventListener("progress" ,progresshandler ,false);
   function progresshandler()
      jQuery("#plo").text("uploading ....");
   
   ajax.open("POST","helper.php");
   ajax.send(objfile);
);

当我点击页面上的“上传”时,此功能正确触发。 我想在上传进行时向用户显示“正在上传....”。 另外我想将此文件发送到 helper.php 文件。 在这种情况下,如何设置 open() 和 send() 函数的属性以传递上传到 helper.php 的文件? 这是我的文件结构和我在 default.php 中的表单位置

js
    jquery.js
tmpl
    default.php
helper.php
mod_upload.php
mod_upload.xml

【问题讨论】:

您不能对模块文件、所需的组件控制器文件或外部文件进行 ajax 调用。 你能告诉我更多吗? 你需要了解组件***.com/questions/19029807/…的基本结构,模块是最小的单元,它没有任何任务(表单提交或ajax调用)。检查示例并根据该示例调用您的 ajax。 也可以查看***.com/questions/20853947/… 【参考方案1】:

试试这个:

$(document).on("click","#poi", function(e) 
    e.preventDefault();
    var formData = new FormData($(this)[0]);

    $.ajax(
        url: 'helper.php',
        type: 'POST',
        data: formData,
        async: false,
        beforeSend: function() 
            $("#message1").show().html("uploading...");
        ,
        success: function(data) 
            $("#message1").fadeOut();
            $("#container").html(data);
        ,
        cache: false,
        contentType: false,
        processData: false
    );
);

【讨论】:

我的代码和你的代码没有区别。唯一的区别是你使用 jquery 而我使用 javascript。当我们使用定义('_JEXEC')或死('限制访问')时;在我们的文件中,我们无法直接访问 joomla 中的目录。我的问题是如何将上传的文件从一个文件发送到另一个文件,而我无法直接访问 joomla 中的文件。 请通过添加您在此处评论的内容来明确您的问题...以便其他人可以帮助您。抱歉,我不知道 jhoomla :) 谢谢你的回答。我的代码在没有 joomla 的情况下可以正常工作。但是当我想在 joomla 中使用它时不起作用。无论如何谢谢你的回答 @susheel 在 Joomla 中这不起作用朋友,在 Joomla 模块中无法直接访问帮助文件。

以上是关于如何在joomla模块中通过javascript发送输入文件类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中通过 XPATH 获取元素?

如何在 Joomla“Articles-Newsflash”模块中取消链接图像

如何在浏览器中通过 Javascript 压缩图像?

我将如何在 Javascript 中通过 WebSocket 发送和接收数据包

如何在IOS APP中通过swift/javascript登录网站

如何使用 javascript 在 woocommerce 中通过 Api Rest 添加到购物车?