首页 > 解决方案 > Cold Fusion 和 RedactorX Pro 图像上传脚本

问题描述

需要帮助了解如何使用 Redactor WySIWYG 上传图像。这是 myscript.cfm 中的代码

 <cfsetting enablecfoutputonly="true">
<cfset relativePath = "/images/">
<cfset dir = expandPath(relativePath)>

<cfset result = {}>
    
<cfif structKeyExists(form, "file")>

    <cffile action="upload" destination="#dir#" accept="image/*"  nameconflict="overwrite" filefield="#file#">

    
    <cfset result["url"] = relativePath&cffile.serverFile>
    <cfset result["id"] = cffile.serverFile>    

    <cfset returnthis = {}>
    <cfset returnthis["file"] = #result#>   
        
<cfelse>
    <cfset result["error"] = "no file uploaded">
</cfif>

<cfheader name="Content-Type" value="application/json">
<cfoutput>#serializejson(returnthis)#</cfoutput>
<cfsetting enablecfoutputonly="false">

Redactor 希望让脚本返回以下内容

{
    "file": {
        "url": "image-url.jpg",
        "id": "some-id"
    }
}

我需要模拟 PHP 脚本的作用。

<?php

// This is a simplified example, which doesn't cover security of uploaded images.
// This example just demonstrate the logic behind the process.

// files storage folder
$dir = '/sitecom/images/';
$files = [];
$types = ['image/png', 'image/jpg', 'image/gif', 'image/jpeg', 'image/pjpeg'];

if (isset($_FILES['file']))
{
    foreach ($_FILES['file']['name'] as $key => $name)
    {
        $type = strtolower($_FILES['file']['type'][$key]);
        if (in_array($type, $types))
        {
            // setting file's mysterious name
            $filename = md5(date('YmdHis')).'.jpg';
            $path = $dir.$filename;

            // copying
            move_uploaded_file($_FILES['file']['tmp_name'][$key], $path);

            $files['file-'.$key] = array(
                'url' => '/tmp/images/'.$filename.'.jpg', 'id' => $id
            );
        }
    }
}

echo stripslashes(json_encode($files));

这是该网站的链接 http://workhub.springinnovation.com/redactor/

任何帮助将不胜感激。

标签: coldfusionredactor

解决方案


推荐阅读