php CloudConvert API v2任务字段是必需的

a11xaf1n  于 11个月前  发布在  PHP
关注(0)|答案(3)|浏览(113)

我正在尝试设置CUI,但当我尝试发送请求时,出现代码错误

Uncaught CloudConvert\Exceptions\HttpClientException: tasks: The tasks field is required

字符串
我需要发送一个文件转换从我的电脑和接收html响应。我的错误在哪里?提前谢谢你!

$job = (new Job())
   ->addTask(
       (new Task('import/upload', 'import-my-file'))
       ->set('file', fopen($DocumentPath, 'r'))
     )
   ->addTask(
       (new Task('convert', 'convert-doc-to-html'))
         ->set('input_format', 'doc')
         ->set('output_format', 'html')
         ->set('engine', 'office')
         ->set('input', ["import-my-file"])
     )
   ->addTask(
       (new Task('export/url', 'export-my-file'))
         ->set('input', ["convert-doc-to-html"])
         ->set('inline', false)
         ->set('archive_multiple_files', false)
     ); 
     
$cloudconvert->jobs()->create($job);
$uploadTask = $job->getTasks()->whereName('import-my-file')[0];

$cloudconvert->tasks()->upload($uploadTask, fopen($DocumentPath, 'r'), 'myfile.doc');

sd2nnvve

sd2nnvve1#

我有同样的问题,原来这是我打开的文件,我必须做以下工作:
$file = rtrim(file_get_contents($file,FILE_TEXT)); $file = mb_convert_encoding($file,'UTF-8',mb_detect_encoding($file,'UTF-8,ISO-8859- 1',true));
然后将$file放入->set('file',$file)
你可以看到,我在这里发现了什么:cloundconvert API v2 in php return任务字段是必需的

jvlzgdj9

jvlzgdj92#

我发现了这个问题,它帮助我解决了使用CloudConvert API v2将文件从.docx转换为. pdf的问题。

public static function convertUsingCloudconvert($input_file_path, $output_file_path)
{
    $cloudconvert = new CloudConvert([
        'api_key' => 'YOUR_API_KEY_HERE',
        'sandbox' => false
    ]);

    //create process names
    $upload_process = 'your-upload-name';
    $convert_process = 'your-convert-name';
    $export_process = 'your-export-name';
    $upload_filename = 'your-file-upload-name.docx';

    $convert_job = (new Job())
        ->addTask(new Task('import/upload', $upload_process)) //task for file upload
        ->addTask( //task for conversion process
            (new Task('convert', $convert_process))
                ->set('input', $upload_process)
                ->set('input_format', 'docx')
                ->set('output_format', 'pdf')
        )->addTask( //task for file download
            (new Task('export/url', $export_process))
                ->set('input', $convert_process)
        );

    $cloudconvert->jobs()->create($convert_job); //create conversion process

    $uploadTask = $convert_job->getTasks()->whereName($upload_process)[0];
    $cloudconvert->tasks()->upload($uploadTask, fopen($input_file_path, 'r'), $upload_filename); //upload file to convert

    $cloudconvert->jobs()->wait($convert_job); //wait for process to finish

    $export_urls = $convert_job->getExportUrls(); //get generated files
    if (!empty($export_urls)) { 
        foreach ($export_urls as $file) {
            $source = $cloudconvert->getHttpTransport()->download($file->url)->detach();
            file_put_contents($output_file_path, $source); //copy source to output path
        }
    }
    else {
        //some error handling
    }

}

字符串

mcdcgff0

mcdcgff03#

我也有一个工作的Laravel/php代码.有没有在互联网上关于这一点的职位不多.希望有人帮助.

public function convert(Request $request){
        
        $cloudconvert = new CloudConvert([
            'api_key' => config('app.CLOUDCONVERT_API_KEY'),
            'sandbox' => false
        ]);

        $job = (new Job())
            ->addTask(
                (new Task('import/upload', 'upload-my-file'))
                ->set('file', 'upload-my-file')
            )
            ->addTask(
                (new Task('convert', 'convert-my-file'))
                    ->set('input', "upload-my-file")
                    ->set('input_format', $request->file('input_file')->extension())
                    ->set('output_format', $request->output_format)
            )
            ->addTask(
                (new Task('export/url', 'export-my-file'))
                    ->set('input', 'convert-my-file')
            );

        $cloudconvert->jobs()->create($job);
        $uploadTask = $job->getTasks()->whereName('upload-my-file')[0];
        $cloudconvert->tasks()->upload($uploadTask, fopen($request->file('input_file'), 'r'), $request->file('input_file')->getClientOriginalName());
        $cloudconvert->jobs()->wait($job);
       
        $exportUrls = $job->getExportUrls();
     
        foreach ($exportUrls as $file) {
            $source = $cloudconvert->getHttpTransport()->download($file->url)->detach();

            $destinationPath = storage_path('app/public/' . $file->filename);
            file_put_contents($destinationPath, $source);

            $path = public_path('/storage/'.$file->filename);
            
            return Response::download($path);
        }

    }

字符串

相关问题