我有一个HTML表单,用于将文件上传到服务器。为了简洁起见,我只展示了必要的香料
<form id='uploadform' method='post' enctype='multipart/form-data' action='index.php/upload'>
<input name='myFile' id='myFile' type='file'/>
</form>
<input type='button' id='upload' value='Upload'/>
<div id='response'></div>
我使用jQuery.submit()提交表单:
$('#uploadform').submit();
业务逻辑是Slim PHP:
$ app-> post('/ upload','uploadFile');
....
function uploadFile(){
try{
// if success uploading
$app->redirect('/main-page');
}catch(Exception $e){
// if error
echo $e->getMessage();
}
}
问题:如果由于某种原因上传失败,则会引发异常,将用户带到PHP错误页面。如果上载无一例外地完成,则应用程序将重定向到主页。
所需要的是:如果上传成功,则应像现在一样将应用程序重定向到主页...但是,如果抛出任何异常,则应用程序应停留在上传页面上,而不是转到PHP错误页面。 id ='response'应该显示异常。
是否可以使用jQuery Submit()做类似的事情:
$('#uploadform').submit(function(response){
$('response').html(response);
});
????
我知道JQuery上传文件插件会让生活更轻松...但这对我来说不是一个选择...
感谢您的指导!
可能吗
参考方案
您需要使用ajax,这是使用ajax上传文件的示例
Sending multipart/formdata with jQuery.ajax
没有ajax,您可以重定向用户并通过GET方法发送错误文本,并将此文本放入响应标签
Slim 4中的路由中间件不会停止调用路由中的可调用对象 - php我正在使用Slim4中的授权中间件。这是我的代码:$app = AppFactory::create(); $app->add(new Authentication()); $app->group('/providers', function(RouteCollectorProxy $group){ $group->ge…
PHP:不推荐使用password_hash的'salt'选项 - php我正在使用密码哈希进行注册。我需要手动创建Salt,以下是我使用的代码:$options = [ 'cost' => 11, 'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM) ]; $password = password_hash( $this->…
PHP-全局变量的性能和内存问题 - php假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…
PHP strtotime困境 - php有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00…
php-casperjs获取内部文本 - php我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…