标签: cffile

使用jquery和coldfusion cffile上传多个文件

不是真正的问题...只是想在某处发布,因为我无法在其他地方找到它.现在我已经拼凑了一个我认为可以分享的工作演示.这在Coldfusion和Railo CFML服务器上同样有​​效.

问题是,对于CFML开发人员而言,CFFILE不能使用<input type="file" multiple>...传统上如果你想上传3个文件并在后端使用CFFILE,你必须在你的调用页面上包含3个单独的文件输入.

为简单起见,这是我的解决方案.它使用Jquery $ .ajax对CFFILE进行多次调用,并将结果返回给调用页面上的div.我确定有更好的方法来做到这一点,我的代码可能是一个完整的黑客,但下面的例子工作.希望这有助于某人.

multiFileUpload.cfm

<!DOCTYPE html>
<CFPARAM Name="URL.contractID" defualt="">
<head>
<title>Multi File Upload</title>
<script>
$( document ).ready(function() {
       $('#submitFrm').on("click", function(e){
        e.preventDefault();

            //The jquery.each() statement loops through all the files selected by user
    $.each($('#multiFile')[0].files, function(i, file) {
           var data = new FormData(); 
               data.append('file-0', file);
           ajaxUpload(data);
            }); //end .each statement       

        }); //end submitFrm's click function 

        function ajaxUpload(data){
        console.log("ajaxUpload function called");
        $.ajax({url: "multiFileUploadAction.cfm",
        data: data,
        cache: false,
        contentType: false, //this is need for this to work …
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion jquery cffile

9
推荐指数
1
解决办法
4786
查看次数

从coldfusion中的自动下载网址获取文件

我正在尝试使用 cfhttp 从自动下载 url 获取文件。我正在使用以下代码:

<cfhttp method="get" url="http://www.example.com/getfile" path="E:/" file="abc.csv">
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我将文件类型指定为 CSV,因此我能够获取文件,但文件类型可以更改。我试图CFHTTP.MIMETYPE获取文件类型并像这样使用:

<cfhttp method="get" url="http://www.example.com/getfile">
<cffile action="write" file="E:/abc.#listLast(cfhttp.MIMETYPE,'/')#" output="#cfhttp.FileContent#">
Run Code Online (Sandbox Code Playgroud)

这适用于 CSV 和 XML 文件。但我希望它也适用于 Excel 文件。

请帮忙。提前致谢。

coldfusion cffile cfhttp

6
推荐指数
1
解决办法
2592
查看次数

ColdFusion文件夹权限变为只读

目前运行ColdFusion 10,但这可能是多年来一直存在的问题,也许是整个CF6/7.

作为CMS的一部分,验证的一部分是将图像上载到目录,例如

<cffile action="UPLOAD" filefield="image" destination="media/img/" nameconflict="MAKEUNIQUE" accept="image/jpeg,image/gif,image/pjpeg" mode="644">
Run Code Online (Sandbox Code Playgroud)

然后通过检查尺寸的脚本读取它们.

如果一切都通过,则进程脚本将其移动到其目标目录,例如

<cffile action="MOVE" source="media/img/imagename" destination="media/img/#hexdir#/imagename" mode="644">
Run Code Online (Sandbox Code Playgroud)

如果失败则应删除.

<cffile action="DELETE" file="media/img/imagename">
Run Code Online (Sandbox Code Playgroud)

每隔一段时间/ img /目录变为只读,就无法写入该文件.但我无法确定原因.

有没有我不知道的错误?有任何想法吗?

谢谢

附加信息

我考虑过使用CFDirectory来更改脚本中的文件夹权限,因此如果再次发生,可以快速解决.

我发现了两个问题

在UNIX和Linux上,cfdi​​rectory action ="list"不会返回mode列中的任何信息.

也

使用权限为644,777,111的重命名文件夹似乎不会影响我可以在FileZilla中查看的文件夹的权限.

这是否意味着CF首先无法更改文件夹权限?

coldfusion file-permissions cffile coldfusion-10

5
推荐指数
1
解决办法
694
查看次数

使用AJAX和CFFILE上传文件

我有一个小的表格,我想将文件上传到CF服务器。过去,我可以通过传统的操作页面提交CFFORM来完成此工作。但是我想使用AJAX上传文件。

我在处理页面上收到如下错误:cffile action =“ upload”要求表单使用enctype =“ multipart / form-data”,即使我已经这样定义了表单。

从google'ng到周围,我认为可能是因为Cffile要求filefield属性,但是由于没有表单对象传递给coldfusion。可能类似的问题。我不太喜欢这个解决方案。

无论如何,我可以解决这个错误吗?

这是我的AJAX:

<!---Script to upload file link --->     
<cfoutput>
<script>
$(function(){
//Add a new note to a link
$("##upload-file").submit(function(event){
   // prevent native form submission here
   event.preventDefault();
        $.ajax({
            type: "POST",
            data: $('##upload-file').serialize(),
            url: "actionpages/file_upload_action.cfm",
            beforeSend: function(){
                $('.loader').show();
            },
            complete: function(){
                 $('.loader').hide(3000);
            },
            success: function() {
                PopulateFileUploadDiv();
                $("##upload").val('');
                $("##response").append( "File successfully Uploaded." );
              }    
        });
        return false;           
    });
});
</script>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)

我的表格:

<form method="post" name="upload-file" id="upload-file" enctype="multipart/form-data">

      <input tabindex="0" size="50" …
Run Code Online (Sandbox Code Playgroud)

ajax coldfusion jquery cffile

5
推荐指数
1
解决办法
4668
查看次数

使用 Coldfusion 从 web url 上传文件

我一直允许用户通过在线表单上传文件,如下所示:

<form action="upload.htm" enctype="multipart/form-data" name="upload_form" method="post">
<input type="file" name="upfile">
<input type="submit" name="upload" value="Upload Photos">
</form>
Run Code Online (Sandbox Code Playgroud)

然后在后端,cffile 将上传文件:

<cffile action="upload" destination="#currentpath#" accept="image/jpeg, image/gif, image/png" fileField="form.upfile" nameconflict="makeunique">
Run Code Online (Sandbox Code Playgroud)

现在我想做自动化,以便图像文件不必位于用户的计算机中,而是来自网络目的地,例如http://www.sample.com/images/myimage.jpg而不是 c:/images/我的图片.jpg

我试过这个:

<cfhttp method="get" url="http://www.example.com/images/myimage.jpg"  resolveurl="Yes" throwOnError="Yes">
<cfif cfhttp.mimeType eq "image/jpeg">
    <cfset currentpath = expandpath('/test/')>
    <cffile action="upload" destination="#currentpath#" accept="image/jpeg, image/gif, image/png" fileField="#cfhttp.fileContent#" nameconflict="makeunique">
</cfif>
Run Code Online (Sandbox Code Playgroud)

但是,它给了我一个错误:

无效的内容类型:''。文件上传操作需要表单使用 enctype="multipart/form-data"

我没有使用表单上传,但它似乎需要一个表单字段。

所以我试过这个:

<cfhttp method="get" url="http://www.example.com/images/myimage.jpg"  resolveurl="Yes" throwOnError="Yes">
<cfif cfhttp.mimeType eq "image/jpeg">
    <cfset currentpath = expandpath('/test/')>
    <cffile action="write" output="#cfhttp.fileContent#"  file="#currentpath#/someimage.jpg">
</cfif>
Run Code Online (Sandbox Code Playgroud)

这个写出一个名为 someimage.jpg 的“文件”,但输出不是一个 jpg 文件,而是一些无法识别的文件。使用 …

coldfusion upload cffile cfhttp

4
推荐指数
1
解决办法
1074
查看次数

CFFILE写 - 如果发生冲突,如何制作独特?

知道为什么CFFILE Write不支持让它独一无二但CFFile上传呢?

我正在使用CFFILE Write来处理GetHttpRequestData,并且能够支持使其独一无二将非常有用.有任何想法吗?

coldfusion xmlhttprequest cffile

3
推荐指数
2
解决办法
2455
查看次数

CFFILE - 使用组件上传文件

我有一个表单,我想提交给一个组件进行处理(CRUD行为),问题是它似乎将multipart/form-data传递给某个组件以某种方式丢失了文件位置.当它到达应该上传文件的组件部分时,我得到臭名昭着的表单字段不包含文件错误.

我不是百分之百确定为什么会发生这种情况,但如果我将表单直接提交到执行cffile操作的.cfm页面,一切都按预期工作,但如果.cfm页面执行如下操作:

<cfobject name="process_form" component="processor" />
<cfset result = process_form.upload( form ) />
Run Code Online (Sandbox Code Playgroud)

并且组件"processor"尝试进行上传,我得到表单字段不包含文件.

我的处理器看起来像:

    <cfcomponent name="processor">
      <cffunction name="upload" returntype="string">
      <cfargument name="form_data" type="struct" />
      <cffile action="upload" filefield="#arguments.form_data.file_1#" ...>
          [ ... ]
      </cffunction>
    </cfcomponent>
Run Code Online (Sandbox Code Playgroud)

有一点需要注意的是,如果我尝试使用arguments.form_data.file_1没有#符号的变量,我会得到错误:

The form field arguments.form_data.file_1 did not contain a file.
Run Code Online (Sandbox Code Playgroud)

如果我在变量周围加上#符号,我得到:

The form field C:\JRun4\servers\cfusion\SERVER-INF\temp\cfusion-war-tmp\neotmp7350969777287007477.tmp did not contain a file. 
Run Code Online (Sandbox Code Playgroud)

有关如何解决此问题的任何想法?我宁愿将所有处理操作放在一个组件中,但是现在我似乎无法做到这一点.

谢谢!将

coldfusion cffile

3
推荐指数
1
解决办法
2144
查看次数

我们如何将某个位置的 RVA(相对虚拟地址)映射到 PE 文件偏移量?

从磁盘位置读取 PE 文件时,我需要将 RVA(取自 pdb 文件的相对虚拟地址)映射到 PE 文件(EXE)偏移量。为此,我需要将 RVA 转换为文件偏移量,以便我可以从该位置读出 GUIDS(CLSID,IID)。

问候乌斯曼

c++ debugging process cffile portable-executable

2
推荐指数
2
解决办法
5578
查看次数

cfc文件中的Coldfusion FileUpload函数无法正常工作

我目前正在尝试使用cfc文件中的函数上传文件.当我<cffile action="upload">在同一页面上调用时,我可以让代码工作.但是,我想学习如何从cfc文件中的函数调用它.我相信我传递给<cffile>标签属性的参数存在问题,但我不确定.

这是我的HTML表单:

<form action="confirm.cfm" method="POST" enctype="multipart/form-data">
    First Name: <input type="text" name="FNAME" size="25" /> <br />
    Last Name: <input type="text" name="LNAME" size="30" /> <br />
    Upload Attachment File Here: <input type="file" name="fileUpload" 
                                    id="fileUpload" size="30" 
                                    onchange="PassFileName()" /> <br />

    <input type="hidden" name="fileName" id="fileName" /> <br />
    <input type="submit" value="submit" />
    <input type="reset" name="Reset Form" />
    <div id="filenamesection">
    </div>
</form> 
Run Code Online (Sandbox Code Playgroud)

以下是表单提交到confirm.cfm页面的代码

<cfif isDefined("Form.fileUpload")>
    <cfinvoke component="FileUploadExample"
            method="UploadFile"
            fileToUpload="#Form.fileUpload#"
            sizeMax="50"
            returnvariable="FileNameReturn">
    <cfelse>
            <cflocation url="index.cfm">
    </cfif>
    <h1> Thank for filling out …
Run Code Online (Sandbox Code Playgroud)

coldfusion file-upload cfc cffile cffunction

2
推荐指数
1
解决办法
1816
查看次数

coldfusion如何在数据库中保存pdf文件并在浏览器中获取它

插入MS-SQL 2008数据库

<cffile action="READBINARY" file="#form.FileContents#" variable="binPDF">
<cfquery name="Uploaded" datasource="#cfbasedatasource#">
INSERT INTO UploadedFiles
    (
    AccountId,
    Filecontent
    )
VALUES
    (
    '#UrlAccountId#',
    <cfqueryparam value='#binPDF#' cfsqltype='cf_sql_blob'>
    )
</cfquery>
Run Code Online (Sandbox Code Playgroud)

=========================这是从数据库显示到浏览器:

<cfset binaryData = #cfGetfilecontentquery.Filecontent[1]#>
<cfheader name="Content-Disposition" value="inline; filename=testDocument.pdf">
<cfcontent variable="#binarydata#" type="application/pdf" reset="yes" />
Run Code Online (Sandbox Code Playgroud)

但我只能在浏览器中看到"无法加载PDF文档"

database pdf coldfusion cffile

2
推荐指数
1
解决办法
2077
查看次数