CloudConvert API v2 任务字段是必需的
CloudConvert API v2 The tasks field is required
我正在尝试设置 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');
我遇到了同样的问题,结果证明这是我打开的文件,我必须执行以下操作才能正常工作:
$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)
你可以看到,我在这里发现了什么:
我发现了这个问题,它帮助我解决了使用 CloudConvert API v2 将文件从 .docx 转换为 .pdf 的问题。这是一个有效的 php 示例,适用于遇到麻烦的其他人。
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
}
}
我正在尝试设置 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');
我遇到了同样的问题,结果证明这是我打开的文件,我必须执行以下操作才能正常工作:
$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)
你可以看到,我在这里发现了什么:
我发现了这个问题,它帮助我解决了使用 CloudConvert API v2 将文件从 .docx 转换为 .pdf 的问题。这是一个有效的 php 示例,适用于遇到麻烦的其他人。
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
}
}