You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用MATLAB Web Services向REDCap导入文件?

如何使用MATLAB的webwrite向REDCap上传文件?

我找不到用MATLAB Web Services向REDCap上传文件的方法。虽然curl可以实现该操作,且REDCap的Import File API明确支持POST请求,但我不清楚如何用MATLAB的webwrite完成这个操作。

我的代码片段如下:

url = 'xxxxx';      % REDCap API地址
token = 'xxxxxx';   % REDCap令牌
filename = 'xxxxx'; % 要上传的文件名
record = '1';
field = 'file';

% 读取文件内容
fid = fopen(filename, 'rb');
if fid==-1 
    error(['无法打开文件 ' filename])
end
data = char(fread(fid));
fclose(fid);

ops = weboptions('CertificateFilename', '', 'Debug', false);

result = webwrite(url, 'token', token, ...
        'content','file', ...
        'action', 'import', ...
        'record', record,... 
        'field', field, ...
        'file', data, ...
        'returnFormat','csv', ops);

关于file参数,REDCap API文档仅说明对应“文件内容”,但未指定格式要求。我也尝试过传入文件名而非文件内容(因为看到其他基于curl的实现用的是文件名),但仍未成功。

执行代码后,REDCap返回403 Forbidden错误:

The server returned the status 403 with message
"Forbidden" in response to the request to URL
http://172.17.210.219/redcap/redcap/api/.

但我用其他方式上传文件时不存在权限问题。

以下两种依赖curl的实现均能成功:

R语言(依赖httr/curl)

url <- "http://172.17.210.219/redcap/redcap/api/"
file <- 'contents.m'
formData <- list("token"=token,
    action='import',
    content='file',
    record='1',
    field='file',
    event='',
    returnFormat='json',
    file=httr::upload_file(file)
)
response <- httr::POST(url, body = formData, encode = "multipart")
result <- httr::content(response)

MATLAB调用外部curl

dToken = [  ...
    '-F "token=', redcap_token, '"', ...
    ' -F "content=file"', ...
    ' -F "action=import"', ...
    ' -F "record=', record_num, '"', ...
    ' -F "event=', varargin{3}, '"', ...
    ' -F "field=', varargin{4}, '"', ...
    ' -F "filename=', [this_name, this_ext], '"', ...
    ' -F "file=@', temp, '"'];                    
unixCmd = ['curl  ', hCmd2, '  -X POST  ', hCmd2, '  ', dToken, '  ', redcap_url]; 
[uState, uResultUpload] = system( unixCmd );  % 适用于PC

这两种实现里,curl都是接收文件名,同时向REDCap发送文件名和文件内容。现在想知道如何用MATLAB的webwrite实现文件上传。

内容的提问来源于stack exchange,提问作者gavril0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:22:42