我正在尝试使用openssl bio执行FTP STOR操作。大多数情况下,它运行良好,但有时只发送部分数据。因此逻辑如下:
public function addUser(Request $request){
if($request->isMethod('post')){
$data = $request->all();
$this->validate($request, [
'full_name' => 'required',
'user_email'=> 'required',
'user_type'=> 'required',
'user_password' => 'required'
]);
/* [
'menu_id.required' => 'Menu Name is required',
'title.required' => 'Title is required',
'description.required' => 'Description is required'
]);*/
$user = new User();
$user->type = $data['user_type'];
$user->name = $data['full_name'];
$user->user_id = $data['user_id'];
$user->email = $data['user_email'];
$password = Hash::make('user_password');
$user->password = $password;
$user->save();
return redirect('/admin/view-user')->with('flash_message_success','User Added Successfully..');
}
$user_type = DB::table('user_type')->pluck("title","id");
return view('admin.user.add_user')->with(compact('user_type'));
}
所有操作应同步执行。数据写入功能可以做到这一点:
1. authentication and passive mode selection
2. open data connection
3. write data
4. QUIT
在此循环之后,将==写入Write并且n> 0,因此它将指示写入成功完成。但是,该文件被截断。当我在Wireshark中查看该操作时,我可以注意到QUIT操作是在传输第一个数据块之后立即发送的。客户端还在QUIT命令之后继续发送一些数据块。有人知道这怎么可能吗?
编辑:如果在写入数据和退出(QUIT)之间存在短暂的延迟(例如睡眠),则效果很好。