`
helloyesyes
  • 浏览: 1311343 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

如何使用Mason来实现文件上传

阅读更多

The basic HTML for an upload form looks like:

The way you handle the submission depends on which args method you chose for the ApacheHandler class.
Under the 'CGI' method (default for 1.0x), you can use the $m->cgi_object method to retrieve a CGI.pm object which can be used to retrieve the uploaded file. Here is an example using the 'CGI' method:

Please see the CGI.pm documentation for more details.
Under the 'mod_perl' method (default for 1.1x), the request object available as $r in your components will be an object in the Apache::Request class (as opposed to the Apache class). This object is capable of returning Apache::Upload objects for parameters which were file uploads. Please see the Apache::Request documentation for more details. Here is an example using the 'mod_perl' method:

For more information on how to manually set the args method, see the ApacheHandler documentation.
If you are using CGI.pm, there are some configuration issues to be aware of. CGI.pm needs a tmp directory, and you probably want to be able to specify what that directory is.
Try doing this in your httpd.conf or handler.pl:

You must do this before you load either the HTML::Mason or HTML::Mason::ApacheHandler modules.
That may change which directories CGI tries to use.
You could also try

during startup, either in your httpd.conf or handler.pl
The root of the problem is probably that the temp directory is being chosen when the module loads uring server startup while its still root. It sees it can write to /usr/tmp and is happy. Then when actually running as nobody it dies.
I bet Lincoln would welcome a patch (hint, hint). One solution would be to check if you're running under mod_perl and you're root. If so, then check Apache->server->uid and see if that id can write to the temp directory too.

两种方法中,当然使用mod_perl为佳,cgi的实现方式还需要写缓存文件,如果磁盘空间不足,则会出现无法上传的情况。

一个使用的实例:http://passport.maxthon.cn/new/myprofile/avatar.html

引自:http://www.masonhq.com/?FAQ:HTTPAndHTML#h-how_can_i_handle_file_uploads_under_mason

分享到:
评论

相关推荐

    使用Mason将Perl嵌入HTMLEmbedding Perl in HTML with Mason

    本书向读者展示了如何创建大型,复杂,动态驱动的网站,这些网站看起来不错并且可以使用Perl和Mason轻松维护。

    vim-mason:Mason 的 Vim 语法文件

    vim-mason Mason 的 Vim 语法文件(Perl 嵌入 HTML)基于来自的 Andrew Smith 版本安装如果您没有首选的安装方法,可以使用安装此脚本。 如果您安装了 vundle,只需将以下内容粘贴到您的 .vimrc 文件中: 捆绑'aming...

    Mason, Mason.js for creating a perfect grid with jQuery..zip

    2. **内容卡片**:在新闻、博客或电商网站中,内容卡片的布局可以使用Mason.js来实现,使页面看起来更加整洁有序。 3. **广告展示**:广告位的排布也可以借助Mason.js,使得广告单元能够更好地填充页面空间。 **四...

    Laravel开发-mason-laravel

    4. **构建路由**: 使用Mason提供的助手函数定义Mason兼容的路由。 5. **控制器编写**: 编写处理操作的控制器,实现业务逻辑。 6. **测试与调试**: 利用Laravel的内置测试工具和调试工具进行测试和优化。 ### Lumen...

    mason-framework:基于Perl的模板系统,用于生成动态HTML或其他内容

    - **安装**:首先需要在Perl环境中安装Mason的模块,通常使用CPAN(Comprehensive Perl Archive Network)来完成。 - **创建组件**:编写`.mason`文件,这可以是简单的HTML,也可以包含Perl代码。 - **配置Mason**:...

    Mason.m:Mason.m 使用梅森法则来简化信号流图。-matlab开发

    Mason.m 使用梅森法则来简化信号流图。 它需要一个描述网络的文件,并生成一个符号方程,将相关输出节点与独立输入节点相关联。 该目录包含一个全面的自述文件和一个用于试验的示例网络文件。 梅森法则传统上用于...

    Python库 | mason_framework-0.0.6-py3-none-any.whl

    python库。 资源全名:mason_framework-0.0.6-py3-none-any.whl

    analysys_mason_sigfox_iot_mason_SigFox_

    标题中的"analysys_mason_sigfox_iot_mason_SigFox_"暗示了这是一个关于物联网(IoT)、Mason公司以及SigFox公司的分析报告。描述中的"analysys_mason_sigfox_lpwa_finding_niche_june2019_rdme02"进一步指出,该报告...

    mason:Mason是用ES6编写的带有承诺的模块化命令行工具包

    安装对于命令行用法,请全局安装Mason: npm i -g @mason-cli/bin配置您可以通过在项目目录中创建mason.config.js文件来向Mason加载其他插件。配置示例: mason.config.js module . exports = function ( Mason ) {...

    masonclj:库可简化Clojure对MASON ABM库的使用

    梅森克利 当前的版本: masonclj是一个非常小的库,提供了... 这为masonclj假定的一些设计选择提供了理论依据,但对于那些希望在不使用MASON的情况下用Clojure编写ABM的人也可能会感兴趣。 一些Clojure-Java互操作性

    assignment2_mason

    "assignment2_mason"项目可能是一个课程作业,旨在让学生掌握并运用CSS来实现特定的布局和设计。在这一项目中,我们可能会看到一系列的HTML文件与CSS样式表的结合,展示了CSS如何控制网页的外观和结构。CSS的核心...

    mason:另一个JSON库

    4. “$ rebar3 compile”是一个命令行指示,说明如何使用rebar3工具来编译mason库。Rebar3是Erlang社区广泛使用的构建工具,用于自动化编译、测试和打包Erlang项目。 **标签解析:** “Erlang”标签明确了mason库...

    MasonModels:基于MASON Agent的模型的顶级

    每个Agent都有自己的代码来定义其行为,这可以通过继承MASON提供的`Agent`类并重写必要的方法来实现。例如,你可以创建一个`PersonAgent`类,让其在模拟中执行吃饭、睡觉等行为。 ### 2. MASON的仿真环境 MASON...

    《Modern Aircraft Design Techniques》 W.H. Mason

    Table of Contents 1. Introduction to Aircraft Design 2. Essential Physics and Technology of Aircraft Flight 3. Transport Aircraft Design Considerations and Requirements 4. Vehicle Options: driving...

    NaiveAntColony:使用 Mason 实现一个朴素的蚁群聚类算法

    使用实现一个朴素的蚁群聚类算法。 关于 这是一个简单的蚁群聚类算法的简单实现。 “天真”,因为在这个版本的算法中,蚂蚁不会留下信息素痕迹。 这个项目是在我攻读计算机科学硕士学位期间作为神经网络和知识发现...

    A New SAW Device Simulator Based on Mason’s Equivalent Circuit Model

    随着电信标准和需求的发展,特别是对于移动电话中使用的低损耗RF(Radio Frequency,射频)滤波器的要求越来越高,这就促进了高性能SAW器件的发展,同时也对模型和仿真工具提出了更灵活、更精确、更高效的需求。...

    g-mason:MASON的优化版本,支持多GPU仿真以进行多主体仿真

    使用makefile来构建项目。 要使用默认情况下以可视化为例的三个示例(如果您不想看到可视化,只需在GUI中将其禁用): $ start / mason.sh 或直接在不使用GUI的情况下启动示例模型: $ java sim.app.flockers....

    mason-tools:在Mason中执行基于Agent的仿真的工具包

    这是我在Mason中使用的工具的集合。 声明的属性:整齐地设置参数类的属性的方法 TitledSimpleInspector:外观更漂亮的检查器,允许标题和节 DataCollector:一个实用程序类,可收集数据并可以整齐地检查 ...

Global site tag (gtag.js) - Google Analytics