硬件环境:
STM32F429 + ETH Phy + SPI FLASH
软件环境:
rtt 4.0.3 + lwip + webclient + dfs + elm + ota_download
问题疑惑点,我看了ota_download中的http_ota_fw_download函数,这个flash擦除和写都非常慢,http已经连接好了,不可能等到擦除完再给发数据,这个过程,webclient是怎么做到让服务器等待fal擦写好之后再发数据的?
另一个问题疑惑点,我搭建一个文件服务器,用webclient中的webclient_get_file从文件服务器上下载文件正常。再做一个php文件上传的页面,测试也是正常使用,文件可以通过html表单上传到服务器器。于是我便用webclient中的webclient_post_file函数上传文件,函数返回值也是正常的0.但是服务器上看不到文件,找找了很久没找到原因,调试都是正常的运行过去了,很奇怪
我下面放出来php代码和html测试的代码
《?php
if ($_FILES[“file”][“error”] 》 0)
{
echo “错误:: ” 。 $_FILES[“file”][“error”] 。 “《br》”;
}
else
{
echo “上传文件名: ” 。 $_FILES[“file”][“name”] 。 “《br》”;
echo “文件类型: ” 。 $_FILES[“file”][“type”] 。 “《br》”;
echo “文件大小: ” 。 ($_FILES[“file”][“size”] / 1024) 。 “ kB《br》”;
echo “文件临时存储的位置: ” 。 $_FILES[“file”][“tmp_name”] 。 “《br》”;
// 判断当期目录下的 upload 目录是否存在该文件
// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists(“upload/” 。 $_FILES[“file”][“name”]))
{
echo $_FILES[“file”][“name”] 。 “ 文件已经存在。 ”;
}
else
{
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
move_uploaded_file($_FILES[“file”][“tmp_name”], “upload/” 。
$_FILES[“file”][“name”]);
echo “文件存储在: ” 。 “upload/” 。 $_FILES[“file”][“name”];
}
}
?》
《html》
《head》
《meta charset=“utf-8”》
《title》文件上传《/title》
《/head》
《body》
《form action=“upload.php” method=“post” enctype=“multipart/form-data”》
《fieldset》
《legend》文件上传《/legend》
《label for=“file”》文件名:《/label》
《input type=“file” name=“file” id=“file”》
《input type=“submit” name=“submit” value=“提交”》
《/fieldset》
《/form》
《/body》
《/html》